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