黑马程序员技术交流社区
标题: java11期基础班学习总结 [打印本页]
作者: SFO 时间: 2018-3-24 21:34
标题: java11期基础班学习总结
本帖最后由 SFO 于 2018-3-24 21:36 编辑
到黑马学习JavaEE开发已经一周,基础班的课程也已结束.学习不仅要清晰自己的路线和目标,也要时长总结.术业有专攻,找到自己的不足,才能更进一步.下面仅对自己初学java遇到的问题做个简单的总结, ^_^认为有必要提醒想要学习的同学.
第一天:
1了解Java发展史
人都喜欢听故事,学习恰巧也是从java的发展史开始的. 1992年, SUN公司的James Gosling(詹姆斯.高斯林)和他的团队创造了Oak,也就是java的前身.Oak如何改名为现在的java,这里是有一个小故事的.当年, Oak这个商标已经被注册了,JamesGosling团队里就有人提出,陪我们程序员最多的就是咖啡(当时他们所喝的咖啡多产于印尼的爪哇岛,英文译为java),不如就起名为java吧,外国人起名字虽然随意,但是java的强大毋庸置疑.java从面世后一直被世人所爱.一直以来,Sun公司维持着大约两年发布一次JDK新版本的习惯,直到2009年那4.20号Oracle以约74亿美元收购了SUN公司,但是java的大旗仍呼呼作响.
2.IDE集成开发环境的使用
俗话说,工欲善其事必先利其器,IDE是我们的武器,需要会使用它完成我们的开发,但是初学java我认为不能过度依赖它的快捷功能,毕竟我们所要学习的不是怎么使用一个工具.,而是真正用java编写出虚拟世界,这个过程才是真正快乐的.
3.注释的重要性
永远不要相信自己的理解力,为了在再次阅读自己写的程序代码可以找回当初编写时的思路,建议一定要加注释.问了一些过来人,代码的可读性高对未来工作上的团队开发是很重要的,你不可能一个人战斗,加上注释,你的同事会感谢你.
4.数据类型之字符型
Char代表字符型,其实char也是一种整数类型,例A:65,a:97,所以char类型的可以参加数学运算,也就是用其对应的编码进行运算.
5.数据类型之空类型
Null只能赋值给引用类型,不能赋值给基本数据类型
第二天:
1.运算符之+号
+号在java中有三种意思:代表正号,做加法运算,字符串的连接符.
2.运算符之%号
%是取余运算符,其结果的符号只和左边有关,与右边无关
3.数据类型转换之隐士转换
当把一个范围小的数值或变量赋给一个范围大的变量时,它的数据类型会自动提升为范围大的类型,例如:
int a = 1;
double b = 1.0;
b = a;//这个过程其实是 b = (double)a;
4.数据类型转换之显示转换
也成强制类型转换,当目标类型的取值范围小于源类型时,需要进行强制类型转换,例如:
double a = 1.0;
int b = 2;
b = (int)a;
如果没有进行强制类型转换,编译时会有可能损失精度的报错.
第三天:
1. 选择结构之switch语句
A:switch(表达式),()的表达式可以是byte,short,int,char,jdk5后可以是枚举,jdk7后可以是字符串.
B:所有case后面的值都不匹配的时候才执行default,所以default放在任意位置都没有影响.
C:不建议省略break,有可能出现case穿透的情况.
D:switch结构只有遇到break或者右大括号才会结束.
2. 循环结构之for循环
for循环的变形结构:
for循环的变形格式1:
int x=1;
for(;x<=10;x++) {
}
for循环的变形格式2:
int x=1;
for(;x<=10;) {
x++;
}
Ps:当你发现有规律的重复时,就用循环.
第四天:
1. 数组之二维数组
动态初始化格式:
数据类型[][] 数组名 = new 数据类型[m][n]
m表示的是二维数组中一维数组的个数,n表示的是一维数组中的元素个数, 注意:m必写,n可以不写,所以动态初始化时每个一维数组中的元素个数相同.
2. java中的内存分配之栈,堆,方法区
栈: 存储的是基本数据类型的局部变量和对象的引用(指向对象一种类似地址的东西),使用完毕后立即回收.
堆: 存储的是new出来的东西,一般被称为实体或对象, 使用完毕后,或者没有任何引用指向它的时候会变成垃圾, java中的垃圾回收机制会回收垃圾使应用程序对内存的占用更合理.
方法区:存储加载.class文件的.
第五天:
1. 方法之定义方法需要注意的事项
写方法要有两个明确:
A:返回值类型:明确功能结果的数据类型
B:参数列表:明确有几个参数,以及参数的数据类型.
2. 方法之方法的重载:
重载的特点:
A:方法名相同
B:参数列表不同
C:与返回值无关
第六天:
1. 断点调试
注意: 要想看被调用方法的执行流程,被调用方法也要加断点
第七天:
1. 对面向对象的理解
面向对象其实是程序员希望从自然的认识,直接对客观世界用代码进行模拟,用成员变量表示事物的属性,用成员方法表示事物的行为,类是一类事物的抽象概念,对象是类的实例.
我曾看到对面向对象开发解释比较直观易懂的一种比喻.在完成”猪八戒吃西瓜”这样一件事情,就能看出面向过程和面向对象的不同.
面向过程的程序是这样表达的:
吃(猪八戒,西瓜);
面向对象的程序是这样表达的:
猪八戒.吃(西瓜);
对比一下,是不是面向对象的程序语句更接近自然语言的语法,主谓宾一路了然,和人类习惯的思维方法更一致呢?这样的程序的可读性是不是更高?开发起来是不是更加沉浸在其中的乐趣呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |