一.主要知识点如下表:
对于我来说的重点难点细节点:
1.变量的作用域:从变量定义的位置开始,到该变量所在的那对大括号结束;
2.整数:short整数(占2字节),int整数(占4字节),long整数(占8字节)三种
3.递增和递减运算:选择i++(i--)表示先返回变量值,然后在对变量加(减),而++i(--i)表示先将变量值加(减),再返回变量值。
4.级别从低到高为:byte,char,short(这三个平级)–>int–>float–>long–>double
自动类型转换:从低级别到高级别
强制类型转换:把一个高级别的数赋给一个别该数的级别低的变
运算时,类型不相同,则以最长的类型为主。
5.使用Java.util.Scanner。它的作用就是可以用户进行输入
6.boolean equals(Object obj)用于比较两个对象是否相等,其实内部比较的就是两个对象地址。
7.extends关键字:类的继承是单一继承,一个子类只能拥有一个父类,extends只能继承一个类
8.finally语句的作用无论try区块中有无异常的发生,若撰写finally区块,则代码块就一定会被执行
9.java.awt 包:
java.awt 包中提供了 GUI 设计所使用的类和接口,提供了基本的 java 程序的 GUI 设计工具。主要包括下述三个概念:
1.组件(Component)---按钮、标签、菜单等组件的抽象基本类.
2.容器(Container)---有两类:窗口Window(可以独立存在)和面板Panel(必须放在其他容器内). 而窗口类又分为框架Frame和对话框Dialog.
3.布局管理器(LayoutManager)---定义容器中组件摆放位置和大小接口.
AWT中的五种布局管理器:边界布局管理器(BorderLayout),流式布局管理器(FlowLayout), 网格布局管理器(GridLayout), 卡片布局管理器(CardLayout), 网格包布局管理器(GridBagLayout).
窗体(Frame,Dialog)的默认布局为 BorderLayout
面板()的默认布局管理器是 FlowLayout
10.抽象类和接口的区别:
1:抽象类只能被继承,而且只能单继承。接口需要被实现,而且可以多实现。
2:抽象类中可以定义非抽象方法,子类可以直接继承使用。接口中都是抽象方法,需要子类去实现。
3:抽象类使用的是 is a 关系。接口使用的 like a 关系。
4:抽象类的成员修饰符可以自定义。接口中的成员修饰符是固定的。全都是public的。
11.String类:
其主要构造方法为:
String(String Original),把字符串封装成字符串对象;
String(char[] value),把字符数组的数据封装成字符串对象;
String(char[] value,int index, int count),从索引index开始把count个字符数组值封装成字符串对象。
12.throws和throw
throws格式:方法名(参数)throws 异常类1,异常类2,.....
throw:就是自己进行异常处理,处理的时候有两种方式,要么自己捕获异常(也就是try catch进行捕捉),要么声明抛出一个异常(就是throws 异常~~)
13.final特点:
被final修饰的类是一个最终类,不可以被继承。
被final修饰的方法是一个最终方法,不可以被覆盖。
14.This:
哪个对象调用了this所在的函数,this就代表哪个对象,就是哪个对象的引用。
在定义功能时,如果该功能内部使用到了调用该功能的对象,这时就用this来表示这个对象。
this 还可以用于构造函数间的调用。
调用格式:this(实际参数);
this对象后面跟上 . 调用的是成员属性和成员方法(一般方法);
this对象后面跟上 () 调用的是本类中的对应参数的构造函数。
注意:用this调用构造函数,必须定义在构造函数的第一行。因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败。
15.File类
1:创建。boolean createNewFile():在指定目录下创建文件,如果该文件已存在,则不创建。
而对操作文件的输出流而言,输出流对象已建立,就会创建文件,如果文件已存在,会覆盖。除非续写。
2:删除。boolean delete():删除此抽象路径名表示的文件或目录。
3:获取.long length():获取文件大小。
File.pathSeparator:返回当前系统默认的路径分隔符,windows默认为 “;”。
File.Separator:返回当前系统默认的目录分隔符,windows默认为 “”。
4:判断:boolean exists():判断文件或者文件夹是否存在。
16.线程的操作方法
1.线程休眠
sleep()方法指定一个参数用于该线程的休眠时间,要加异常处理
2.线程加入
当某个线程使用join()方法加入到另一个线程中时,另一个线程会等待这个线程执行完毕之后再继续执行。
3.线程中断
用run()方法中使用无限循环然后用boolean标记控制循环的终止。
4.线程礼让yield();
17.关于流:
如果要将数据从来源处取出,可以使用输入流,要将数据写入目的地,则可以使用输出串流。
程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。
在字节流中输出数据主要是使用OutputStream完成,输入则是InputStream,
在字符流中输出主要是使用Writer类,输入流主要使用Reader类完成。
InputStreamReader--->是字节流通向字符流的桥梁
OutputStreamWriter--->是字符流通向字节流的桥梁
IO主要的操作流程如下:
1 使用File类打开一个文件
2 通过字节流或字符流的子类,指定输出的位置
3 进行读/写操作
4 关闭输入/输出
IO操作属于资源操作,一定要记得关闭
18.MySQL的常用命令
1.mysql -u用户名 -p密码 连接mysql数据库
2.创建数据库:CREATE DATABASE 数据库名称;
3.删除数据库:DROP DATABASE 数据库名称;
4.USE 数据库名称; 使用数据库
5.创建数据库表
CREATE TABLE 表名称(
字段名称1 字段类型 [DEFAULT 默认值][约束],
字段名称2 字段类型 [DEFAULT 默认值][约束],
...,
字段名称n 字段类型 [DEFAULT 默认值][约束]
);
6.删除数据库表 DROP TABLE 表名称;
7.查看表结构 DESE 表名称;
8.查看数据库信息
查看全部数据库:SHOW DATABASES;
查看一个数据库的全部表:SHOW TABLES;
19.创建线程的两种方式
第一种继承Thread ,由子类复写run方法,步骤:
1,定义类继承Thread类;
2,目的是复写run方法,将要让线程运行的代码都存储到run方法中;
3,通过创建Thread类的子类对象,创建线程对象;
4,调用线程的start方法,开启线程,并执行run方法
第二种方式:
实现一个接口Runnable。步骤:
1,定义类实现Runnable接口。
2,覆盖接口中的run方法(用于封装线程要运行的代码)。
3,通过Thread类创建线程对象;
4,将实现了Runnable接口的子类对象作为实际参数传递给Thread类中的构造函数。
5,调用Thread对象的start方法。开启线程,并运行Runnable接口子类中的run方法。
20.java中的函数的定义格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){
执行语句;
return 返回值;
}没有具体的返回值时,返回的返回值类型用void关键字表示。
21.成员变量和局部变量的区别:
1:成员变量直接定义在类中。局部变量定义在方法中,参数上,语句中。
2:成员变量在这个类中有效。局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
3:成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。
22.构造函数特点:
1:该函数的名称和所在类的名称相同。
2:不需要定义返回值类型。
3:该函数没有具体的返回值。
23.static关键字特点:
1,想要实现对象中的共性数据的对象共享,可以将这个数据进行静态修饰。
2,被静态修饰的成员,可以直接被类名所调用。也就是说,静态的成员多了一种调用方式。类名.静态方式。
3,静态随着类的加载而加载,而且优先于对象存在。
24.关于覆盖
1:子类覆盖父类时,必须要保证,子类方法的权限必须大于等于父类方法权限可以实现继承。
2:覆盖时,要么都静态,要么都不静态
25.抽象类的特点:
1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰(可以描述类和方法,不可以描述变量)。
2:抽象方法只定义方法声明,并不定义方法实现。
3:抽象类不可以被创建对象(实例化)。
4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。
26.菜单组件
JMenuBar负责创建菜单条
JMenu负责创建菜单
JMenuItem负责创建菜单项
三者关系
菜单项放在菜单里,菜单放在菜单条里
二.不足:
1.没有学会使用jdk帮助文档,eclipse里的很多功能都是可以直接调用的,但是我不太熟练需要多加练习。博客园总结能力较差,读程序时表达能力不行
2.基础不扎实,耐心不够;学的很浅很死,书上的例题不懂怎么变通。面对综合应用题常常感觉无从下手,代码积累量太少。有些地方它有固定用法,就像语法一样,也没去记忆它
3.算式中有些运算符使用的先后顺序和优先级易混淆,不懂this关键词怎么使用,经常使用一个对象而忘记实例化,重载与覆写的区别混淆,图形界面的很多方法以及数据库这一块没搞懂
4.书写习惯不好,经常代码不对齐没有顺序感,单词拼写不准确,关键的代码懒得写注解,必要的注释还是很有用的,可以有助于回头快速的理解
5.跟专业老师互动太少,问题和疑惑没能反馈,很多课没跟上进度。课外学习时间安排的太少
三.感想与计划:
1.我觉得学习Java一开始没有学C语言头疼,因为毕竟和C有关联,有c的基础java还是很好入门的。但越学到后面越关键的地方越吃力。它的定义方法和关键字太多了,涵盖的范围也广,每次拿着这本厚重的Java书我都头疼。但通过一个学期的学期也有些进步,编程的思路扩宽不少,能大概写出简易的程序。
2.平时完成作业时,我常常不能独立完成,急于求成,而导致自己没有好好消化所学的知识,学了就忘。我要改善自己的学习方法,提高自己的学习效率,更重要的是逼自己去动手无论难易,很多东西必须自己动手才能真正属于自己。还有就是调节自己,我每次遇到困难都会有所烦躁气馁,而坏的情绪更加不会带来好的学习结果,反而消耗了更多信心。慢慢调整心态,把编程当做一种爱好,兴趣才是最好的老师
3.在接下来的学习上,我对自己的水平有个基本认知了。我会制定一个寒假计划,去看相关的教学视频,然后再结合教材的讲解,把之前不够熟练或者遗漏的知识点掌握好。好记性不如烂笔头,多多记录并总结知识。每次代码运行有结果的那种成就感是不言而喻的 ,所以坚持总会有收获的。就像我现在回头看看这学期开头写的java题,当时觉得很难,现在也一下子就看懂了。
4.最后感谢老师和助教的工作以及某些同学的帮助,期待我们20年会更好
附:
第二周总结
第三周总结
第四周总结
第五周总结
第六周总结
第七周总结
第八周总结
第九周总结
第十周总结
第十一周总结
第十二周总结
第十三周总结
第十四周总结