学习总结
第一章总结:
Java 实现可移植性靠的是 JVM,JVM 就是一台虚拟机的计算机, 只要在不同的操作系统上植入不同版本的 JVM, 那么 Java 程序就可以在各种平台上移植, 做到 "一次编写, 处处运行"
Java 中程序的执行步骤为: 使用 Javac 将一个 *.Java 文件编译成 *.class 文件; 使用 Java 可以执行一个 *.class 文件.
每次使用 Java 命令执行一个 class 的时候, 都会启动 JVM,JVM 通过 class path 给出的路径加载所需要的类文件.
第二章总结:
1.Java 程序的开始点是由主方法开始的.
2.Java 的注释符: 单行注释:// ; 多行注释:/*....*/ ; 文档注释:/**...*/.
3.Java 中的变量可以由英文字母, 数字, 下划线和美元符号组成, 但是标识符不能以数字开头, 也不能是 Java 中的保留关键词. 此为, Java 的变量区分大小写.,Java 基本正常是类,
使用 public class 和 class 都可以声明一个类, 但是前者类名必须与文件名一至, 后者文件名称可以与类名不一致, 但执行时必须执行生成后的 *.class 文件.
4.System.out.print()是在标准输出设备 -- 显示器上进行打输出操作, 有 print()和 println()两种输出方式, 前者输出不会自动换行, 后者会自动换行.
第三章总结:
1.Java 数据类型分为基本数据类型和引用数据类型;
2. 数据类型可分为自动类型转换和强制类型转换两种;
3. 当表达式中有类型不匹配时: 占用较少字节的数据类型会转换成占用较多字节的数据类型; 有 short 和 int 类型, 则用 int 类型; 字符型会转换成 short 类型;
int 转换成 float 类型; 如果一个操作数的类型是 double, 则其他的操作类型操作数也会转换成 double 类型; 布尔型不能转换成其他类型.
第五章学习总结:
1. 面向对象的三大特征: 封装, 继承, 多态.
2. 类与对象的关系: 类是对象的模板, 对象是类的实例, 类只能通过对象才能使用.
3. 类是由方法和属性组成;
4. 对象产生格式: 类名称 对象名称 = new 类名称();.
5. 类的封装性: 通过 private 关键词进行封装, 被封装的属性不能够被外界直接调用, 而是通过 getter 方法和 setter 方法完成, 只要是属性, 则必须封装.
6. 构造方法可以为类中的属性初始化, 构造方法与类名相同, 无返回值类型声明. 如果在类中没有明确的定义出构造方法, 则会自动生成的一个无参数无返回值类型的构造方法, 在一个类中构造方法可以重载, 但是每一个类都至少有一个构造方法.
7.String 类在 Java 中比较特殊, strin 可以使用直接赋值的方式, 也可以通过构造方法进行实例化, 前者只产生一个实例化对象, 而且次实例化对象可以重用, 后者则可以产生两个实例化对象,
其中一个是垃圾空间, 在 string 中声明比较内容使用的是 equals 方法, 而 "==" 比较的两个字符串的地址值, 字符串的内容一旦声明则不可以更改;
8.This 关键词可以表示当前对象, 通过 this. 属性可以调用本类中的属性, 通过 this 方法 (), 可以调用本类中的其他方法, 也可以通过 this() 的形式调用本类中的构造方法, 但是调用时要放在构造方法的首行.
9. 使用 static 声明的属性和方法可以由类名直接调用, static 方法是所有对象共享的, 所有对象都可以对其进行操作.
10. 内部类是一个类的内部定义另外的一个类, 使用内部类可以方便的使用外部类的私有操作.
第六章学习总结:
继承可以已有类的功能. 通过 extends 关键词实现, 可以将父类的成员继承到子类.
Java 在执行子类的构造方法之前, 会先调用父类中已有的无参数的构造方法, 其目的是为了对继承自父类的成员初始化操作.
父类有多个构造方法的时候如果要调用特定的构造方法, 则可以在子类的构造方法中, 通过 super()这个关键词实现.
This()是在同一类内调用其他方法的构造方法, 而 super 则是从子类的构造方法中调用其父类中的构造方法.
使用 this 调用顺序或方法时候会先从本类中查找, 如果本类中没有查找到, 则在从父类中查找, 而使用 super 则会直接从父类中查找需要的方法和属性;
重载, 在相同类中, 名称相同, 但是参数个数或参数类型不同的方法
覆写, 在子类中, 定义名称, 参数个数与父类均相同的方法, 用以覆写父类里的方法.
如果父类中的方法不希望被子类覆写, 可以在父类的方法之前加上 final 关键词, 如此该方法就不会被覆写.
所有的类都继承自 object 类. 一个好的类覆写 object 类中的 tostring(),equals(),hashcode()3 方法, 所有的对象都可以向 object 类进行转换.
Java 可以创建抽象类, 专门用来当做父类. 抽象类的作用就相当于模板, 其目的是依据其格式来修改并创建新的类.
抽象类不能够直接用来产生对象, 必须通过对象的多态性进行实例化操作.
接口时方法和全局常量的结合, 接口必须被子类实现, 一个接口可以被多个接口同时继承, 一个子类可以同时实现多个接口.
Java 不允许类的多重继承, 但可以实现多个接口.
通过 instanceof 关键词, 可以判断对象属于哪个类.
第七章学习总结:
异常是导致程序运行中断的一种指令流, 当异常发生的时候, 如果没有良好的处理, 则程序将会中断执行.
异常处理可以使用 try....catch 进行处理, 也可以使用 try....catch....finally 进行处理, 在 try 语句中捕获异常, 然后在 catch 中处理异常, finally 作为异常的统一出口, 不管是否发生异常都会执行此代码.
异常的最大父类时 throwable, 其分为 exception 和 error 两个子类.
发生异常之后, JVM 会自动产生一个异常类的实例化对象, 并匹配相应的 catch 语句中的异常类, 也可以利用对象的向上转换类型关系, 直接捕获 exception.
Throws 用在方法声明处, 表示本方法不处理异常
Throw 表示在方法中手工抛出一个异常.
第九章学习总结:
线程 (thread) 是指程序的运行流程, 多线程的机制可以同时运行多个程序的程序块, 使程序的运行效率更高, 也解决了传统程序设计语言所无法解决的问题.
如果在类里面要激活线程, 要做到: 此类必须是扩展自 thread 类, 使自己成为他的子类; 线程处理必须编写在 run()方法内;
Run 方法是定义在 thread 类里面的一个方法, 因此把线程的程序代码编写在 run 方法内, 其实就是覆写操作.
Runnable 接口里声明了抽象的 run 方法, 因此必须在实现 runnable 接口的类里明确定义 run 方法.
Callable 接口可以在线程里面执行完毕返回相应的结果.
每一个线程, 在其创建和消亡之前, 会处于创建, 就绪, 运行, 阻塞, 终止状态之一.
暂停状态的线程可由下列情况产生: 该线程调用对象的 wait(); 该线程本身调用 sleep()时; 该线程和另外一个线程 join()在一起时.
当多个线程对象操纵同一资源时, 要使用 synchronized 关键字进行资源的同步处理.
第十二章学习总结:
在 Java 中使用 file 类表示文件本身, 可以直接使用此类完成文件的各种操作, 如建立, 删除等.
输入输出流, 主要分为字节流 (output stream,Input Stream) 和字符流 (Write,Reader) 两种, 但是在传输中以字节流操作较多, 字符流在操作的时候使用到缓冲区, 而字节流没有使用到缓冲区.
字节流或字符流都是以抽象类的形式定义的, 根据其使用的子类不同, 输入或输出的位置也不同.
在 IO 包中可以使用 output streamWrite 和 Input Stream Reader 完成字符流和字节流之间的转换操作.
使用 Byte Array Input Stream 和 Byte Array output Stream 可以对内存进行输入输出操作.
在 IO 中输出时最好使用打印流 (PrintStream,Print Writer) 这样可以方便的输出各种类型的数据.
System 类提供了 3 个支持 IO 操作的常量: out,err,in.System.out: 对应显示器的标准输出. SYstem.err: 对应错误打印, 一般信息不希望给用户看到; System.in: 对应标准的键盘输入.
使用 SCanner 类可以方便的进行输入流操作.
第十八章学习总结:
Swing 是在 AWT 基础之上的一种扩展应用, 提供了一套轻量级的操作系统.
在 Swing 中所有的组件都是以字母 J 开头的, 所有的组件都是继承 自 Component 类
JFrame 是 Swing 提供的一个标准容器, 可以向容器上加入各个组件.
JLabel 是一个标签组件, 用于显示基本信息;
JButton 是一个按钮组件, 如果要构建不弹起的按钮则要使用 JToggleButton.
在图形界面中提供了 FLow Layout,Borer Layout,Grid Layout,Card Layout, 绝对定位等几种布局管理器.
可以使用 JTextFiled 完成一个文本框, 使用 JPasswordFiled 可以完成一个密码框, 使用 JTextArea 可以完成一个文本域.
事件发生时会产生事件源并找到相应的监听程序进行处理, 在图形界面中提供了多个 Listener 接口进行事件处理.
在使用 JRadioButton 完成单选操作时, 需要将多个 JRadioButton 加入到 Button Group 中, 才能够实现单选的功能.
JComboBox 可以完成单选操作时, 需要将多个 JRadioButton 加入到 Button Group 中, 才能够实现单选的功能.
要完成菜单显示, 则需要将多个 JMenu 加入 JMenuBar 中, 菜单中菜单项使用 JMenuItem 处理, 每一个 JMenuItem 都表示一个特殊的按钮;
JFileChooser 可以完成文件选择对话框.
如果要显示一组数据, 则可以使用表格的形式进行显示.
心得:
时光匆匆, 不知不觉间大二上学期已经接近尾声, 所以我学习 Java 已经半年了, 这半年来可以说是收获良多, 正所谓一分耕耘一分收获嘛, 自己付出了多少, 收获就会有多少. 虽然说自己不是特别特别的努力, 但是自我感觉还是挺好的, 至少我自己在专业方面, 还是坚持努力的, 虽然不能做到每一节课课前预习课后拓展, 但是我还是做到了课后巩固, 老师每一次讲的知识点, 在课后我都有重新巩固了, 但是对于很多的知识点还是不了解, 就是知道, 但是要用专业术语来将还是不行, 这可能就是我欠缺的地方, 也是下学期还需要努力的地方. 相对于 C 语言来说, 我在 Java 的学习方面更加努力, 因为我觉得 Java 更有意思, Java 的学习让我慢慢的明白了我们这个专业的作用和用来实现的目的, 就是说慢慢的解除了刚进大学对这个专业的迷茫. 学习就是一个循序渐进的过程, 随着你知识的增加, 知识面的拓展, 认识的接触的领域越多, 你的迷茫就会越少, 对某一方面的兴趣就会越浓厚. 自己不能说学到了很多知识, 但是有老师那么多次的深刻讲解和精彩演示, 让你不想学习都难, 每一次老师演示实验的时候, 对于初学者的我来说, 无疑会在心中激起波澜, 有老师的讲解比我自己自学要强一百倍, 老师不会直接按照书本上的文字去读, 而是通过代码来解释一切, 既让我们学到了新知识又会解决我们对代码的疑惑, 对于我来说, 这是对我所能接受知识至少最好方法, 所以就算是听不懂, 也还是会认真听, 这样你或多或少也还是会学习到知识, 或许你现在用不到, 将来你遇到了, 就会豁然开朗, 我只想说好老师将使你受益一生.
来源: http://www.bubuko.com/infodetail-3329961.html