本帖最后由 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. 对面向对象的理解 面向对象其实是程序员希望从自然的认识,直接对客观世界用代码进行模拟,用成员变量表示事物的属性,用成员方法表示事物的行为,类是一类事物的抽象概念,对象是类的实例. 我曾看到对面向对象开发解释比较直观易懂的一种比喻.在完成”猪八戒吃西瓜”这样一件事情,就能看出面向过程和面向对象的不同. 面向过程的程序是这样表达的: 吃(猪八戒,西瓜); 面向对象的程序是这样表达的: 猪八戒.吃(西瓜); 对比一下,是不是面向对象的程序语句更接近自然语言的语法,主谓宾一路了然,和人类习惯的思维方法更一致呢?这样的程序的可读性是不是更高?开发起来是不是更加沉浸在其中的乐趣呢? |