201521123121 《Java程序设计》第2周学习总结
1. 本周学习总结
通过分析数据所需要占用的内存长度来决定java的类型,其中主要分为基本类型和长类型。
基本类型主要分为五个方面:整数(short=2字节;int=4字节;long=8字节);字节(byte);浮点数(float=4字节;double=8字节);字符(char=2字节);布尔(true;false)。
数值在java中的暂存位置被称为变量,通常使用清楚易懂的词组命名,不可以以数字、特殊字符命名。变量名称也不可以与java的keyword(如int、float、class等)、保留字同名。
程序语言中提供运算功能的就是运算符,包括:算术运算(+、—、*、/ 等);比较、条件运算(>、<、);逻辑运算(&& and、丨丨 or、!not);位运算(& and、丨or、^ xor 、~补码)递增递减(++、--)
2. 书面作业
使用Eclipse关联jdk源代码(截图),并查看String对象的源代码?简单分析String对象的设计思路。



在JAVA中string类被设计为final类型是因为在Java中,被final类型修饰的类不允许被其他类继承,被final修饰的变量赋值后不允许被修改
为什么要尽量频繁的对字符串的修改操作应该是用StringBuilder而不是String?
string每次修改字符串都是新建,然后删除旧的串会很影响效率,而stringbuilder是在字符串的末尾操作,和string比较快,
在小数据库的时候string和stringbuilder没有什么大的影响,但是大数据量的时候,stringbuilder会比string快很多
比较两个字符串的值是否相等?为什么不能用==直接进行比较?
==比较字符串是否引用同一地址,如果2个字符串是同一个对象,那可以用==,如果不是同一个对象,只是比较内容是否一致,则不可以用==
尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:
String str1 =“hi“, str2=“hi“;
String str3 = new String(str1)
System.out.println(str1==str2);
建立了2个字符串对象:首先,在str1="hi"时,系统为str1创建了第一个字符串对象hi,而str2=str1,直接指向了之前的hi,
当str3=new string(str1),系统会再次建立一个hi对象
Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i
i为一个Integer类型的引用,100为Java中的基础数据类型(primitive data type)。
原理:装箱就是jdk自己帮你完成了调用Integer.valueOf(100)
Java中的自动装箱与拆箱指的是基本数据类型与其包装类型的相互转换
尝试分析下面代码输出结果
1.Integer i1 = 127;Integer i2 = 127;
i1 == i2;//true of false?
2.Integer i1 = 128;Integer i2 = 128;
i1 == i2;//true of false
1.true 2.false
这两段Integer.valueOf()代码,将字符串范围限制在一个字节之内,即-128——+127之间,超越这个范围的,需要新建字符串解决
package与javac、 java、 -classpath、 -d
在 com.ibm包中编写 StringUtil类,内有一方法
public static void foo1(){
System.out.println(StringUtil.class+" method:foo1");
}
在edu.jmu包中编写Main类,其中掉了com.ibm.StringUtil的foo1方法
1 尝试用命令行进行编译并运行,截图
2 将生成的StringUtil.class放到d:\lib正确的目录结构下,将Main.class在d:\test正确的目录结构,尝试在命令行下运行,并截图。
3 Eclipse中源代码放在哪个目录、class文件放在哪个目录。在Eclipse项目中按一下ctrl+f11就可以直接运行Main,尝试分析背后实现的原理。
自己在这门课的目标与计划
- 请描述一下你的技术基础(会什么语言,都写了多少行代码)
- 一周准备花多少时间在这门课上?一周准备写多少行代码?采用怎样的学习方式?遇到困难打算怎样解决?
- 关于这门课的smart目标参考链接
对C语言和C++有过学习,目前每周花费约12小时在课后,一周尽量尝试PTA上的题目(看起来不多,其实还是很难)。
采用课堂与课后作业、自学结合,遇到困难可以请教同学和使用网络、参考书本。
最基本的目标还是完成所需的功课,最现实的目标是要学以致用,毕竟是给以后打下基础。
3. 使用码云管理Java代码
- 在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图

4. PTA实验
PTA习题对于我们初学者来说,其实并不简单,由于过往C语言等基础不是特别扎实,导致理论学习之外,投入到实际应用中,会发生各种不明错误
身份证生日提取中,尝试过冒泡等数种方法,最后查阅资料发现可通过字符串截取方式,substring(int beginIndex, int endIndex) 更为的快捷解决
201521123121 《Java程序设计》第2周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- FPS手游如何脱颖而出?看《CF手游》的性能突破之路
WeTest导读 俗话说:用户体验不谈性能就是耍流氓. 在PC游戏上的性能问题并没有那么明显, 加个内存换个CPU或者刷个主频就能轻松搞定:到了手游时代后情况则显得比较严峻,捉襟见肘的内存使得资源加载 ...
- MySQL root密码忘记解决
--MySQL root密码忘记的解决办法 -----------------------------------2014/03/14 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接My ...
- FFT 专题讲解
FFT是什么? FFT是快速傅里叶变换(fast Fourier transform)的简称.在ACM领域主要是用来快速求解多项式乘法的算法, 在信号领域也有很大用途 基础知识 卷积 举个例子,给你两 ...
- 一步一步学J2SE-HashMap的实现原理
HashMap数据结构图 HashMap的数据结构是通过数组加链表实现的.数组是HashMap的主体,链表是为了解决Hash碰撞问题. HashMap的Get方法 1. 在get的时候首先判断key ...
- CentOS 7 服务器配置--安装Mysql
#获取mysql的rpm文件(rpm文件地址可以通过官网获取) wget -r -np -nd https://dev.mysql.com/get/mysql57-community-release- ...
- MSPointerEvent属性
MSPointerEvent属性 属性 描述 hwTimestamp 创建事件的时间(ms) isPrimary 标识该指针是不是主指针 pointerId 指针的唯一ID(类似于触摸事件的标识符) ...
- 如何快速禁用约束 (解决ORA-O2266问题)
业务场景: 某天truncate大量表时遇到错误ORA-O2266:表中的唯一/主键被启用的外键引用,不想看ER图来禁用大量复杂约束,所以研发了三种套路... 一. 最偷懒套路 如果要一次性导出很 ...
- /etc/fstab最后3个字段详解
/etc/fstab文件的作用就是让挂载的信息在开启的时候生效: 磁盘分区 挂载目录 文件格式 访问方式 fs_dump fs_pass /dev/sdb1 /mnt ext4 defaults ...
- 深入浅出数据结构C语言版(12)——平衡二叉查找树之AVL树
在上一篇博文中我们提到了,如果对普通二叉查找树进行随机的插入.删除,很可能导致树的严重不平衡 所以这一次,我们就来介绍一种最老的.可以实现左右子树"平衡效果"的树(或者说算法),即 ...
- java‘小秘密’系列(二)---Integer
java'小秘密'系列(二)---Integer 前言:本系列的主题是平时容易疏忽的知识点,只有基础扎实,在编码的时候才能更注重规范和性能,在出现bug的时候,才能处理更加从容. 目录 java'小秘 ...