点我开始蹦迪
点我立马肾虚
看我乘风破浪
美梦里学会感慨,你亦放肆你的爱
1. 可可爱爱的Linux图标
小企鹅瞩目
2. JDK、JRE和JVM的关系
我们就装JDK
3. JDK的安装目录下的内容
注意bin目录下有什么
4. 常用DOS命令
记住常用的命令
5. 命令提示符窗口の小秘密
重启大法好
6. 维修员小姐姐穿的真好看
小甲虫电死在电路板上导致了BUG,衍生出了程序BUG的意思
P.S. 真是一只伟大的小虫子
7. 定义变量时的坑
整数默认是int类型,小数默认是double类型,其他类型要强制转换,如:(short)5
8. 两种命名法
小驼峰适用于方法和变量名,大驼峰适用于类名
9. 七种基本数据类型的范围比较
Java基本数据类型共8种,此处boolean不参与比较
P.S. 八种基本数据类型的大小比较
| 数据类型 | 内存大小 |
|---|---|
| byte | 1字节 |
| short | 2字节 |
| int | 4字节 |
| long | 8字节 |
| float | 4字节 |
| double | 8字节 |
| char | 2字节 |
| boolean | 1字节 |
10. 字符的“+”操作
整个表达式类型自动提升到表达式中最高等级操作数的类型
11. 字符串的“+”操作
具体是执行加法还是连接要从左往右看
12. 自增自减运算的规律
等技术更上一层楼后我们会知道,两种都是先++或--再参与操作,但现在按这个记更好理解
13. 逻辑运算符的规律
&:有F则F;|:有T则T;^:ab不同为T,相同为F;!:T变F,F变T
14. 短路逻辑运算符的规律
注意&&和||有可能只执行左边,短路右边
15. 数据输入的实现步骤
上面是Scanner的使用步骤
16. switch语句的穿透现象
在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象。在不判断下一个case值的情况下,向下运行,直到遇到break,或者switch语句结束。
如:
穿透现象
17. 任意数字的指定位上的数值如何求
先把数除以相应的位数使要求位的数到个位,再对10取余数
如:
x/10%10==7(表示判断x的十位上的数是否为7)
18. 三种循环的区别
for、while和do...while的区别
19. 三种循环的死循环格式
死循环最常用的是while
20. 随机数的产生
Random的使用步骤
注意!r.nextInt(10)的范围不包括10,如要获取1到10范围的随机数,则用r.nextInt(10)+1
21. 傻瓜式教学如何用IDEA写代码
项目->模块->包->类->代码->执行
22. IDEA的项目结构
项目->模块->包->类
23. IDEA的内容辅助键
牢记psvm和sout,Ctrl+Alt+space(空格)可以提示出相近的代码,选中回车后可补全代码
此处我用idea实验后得知应该是psvm+Tab键,偶尔用psvm+回车也行
24. IDEA的快捷键
格式化是例如把a=1变成a = 1(加上了空格)
25. IDEA中的删除模块是否真的删除了模块
答案是只在项目目录中移除了模块,而在硬盘上并没有被删除,要去模块的目录下手动删除
26. 快速调出IDEA中的模块所在的目录
点击Show in Explorer即可
27. 数组初始化时的默认值
以上是常用类型的默认值
28. Java中的内存分配
栈内存放局部变量,堆内存放new的内容
补充:常量存放在常量池中,而常量池在堆内存中。
29. 导包方式
1. 手动导包,如:import java.util.Scanner;
2. 快捷键导包:Alt+Enter
3. 自动导包 如写代码Scanner时会有提示,回车后自动导入包
30. 关于this关键字
this修饰后的变量指的是成员变量
下图若不加this则报错,因为等号两边的name均是形参,也就是局部变量
若形参名和成员变量名不同,则不用加this关键字
this的作用和this代表的对象
this修饰变量后变为成员变量(变量名要和成员变量一致)
this代表的对象
哪个对象调用方法,this就代表哪个对象
31. 构造方法的注意事项
注意:若自定义了带参构造方法,之后要使用无参构造方法则需要自己写
32. API概述(Application Programming Interface)
使用API即为引包,其中lang包不需要引,是默认自带的包
33. Scanner类的各种方法
如要接受字符串,则用sc.nextLine()
关于Scanner的一个快捷键:Ctrl+Alt+V
当要用一个变量接收Scanner的结果时,可以不写接收变量然后用快捷键。
如:
sc.nextLine();→按下Ctrl+Alt+V→String s = sc.nextLine();
34. String概述
String相当于int等数据类型,可以直接用
35. String的特点(了解)
String相当于int等数据类型,可以直接用
36. 双等号究竟比较的是什么
因为String是对象,所以比较String类型变量时是比较地址是否相同
37. 字符串的比较方法
如s1.equals(s2)
38. 字符串的遍历操作
字符串的遍历操作是用charAt(int index)函数
如:
for(int i=0;i<s.length();i++){
System.out.println(s.charAt(i));
}
39. 判断字符属于大写字母、小写字母还是数字的方法
比较的是字符的ASCII码
40. String的常用方法
实际上这三种方法我们之前都用过
41. StringBuilder
StringBuilder的引入原因
StringBuilder对象的内容是可变的
String和StringBuilder的区别
StringBuilder和String都在lang包里,都不用引包,都可以直接使用
42. StringBuilder的常用方法
前两种方法很强,是String所没有的
43. StringBuilder和String的相互转换
主要是为了让String转换为StringBuilder然后用他的两个专属方法
//StringBuilder通过toString方法转换成String
StringBuilder sb = new StringBuilder();
sb.append("hello");
String s = sb.toString();
//String通过StringBuilder的构造方法转换为StringBuilder
String s = "hello";
StringBuilder sb = new StringBuilder(s);
44. ArrayList
ArrayList的优点是数组大小可以调整
用ArrayList要引包:
import java.util.Arraylist;至此我们已经学了三个需要引包的类,另外两个是:
import java.util.Scanner;
import java.util.Random;以后学习新的类需不需要引包不重要,该引包写的时候都会有提示
ArrayList的添加元素方法
ArrayList有两种插入元素的方法,这两种方法的返回类型和形参数目不同,方法名相同
ArrayList初始化对象的举例
ArrayList<String> array = new ArrayList<String>();
ArrayList的删除、修改、取元素和查元素个数的方法
ArrayList有两种删除元素方法,这两种方法的返回类型和形参数目不同,方法名相同
45. 从学生管理系统中学到的tips
"\t"相当于按一次制表符的效果
"\t"输出时要用引号包裹
System.exit(0);实现JVM退出
Java虚拟机都退出了,程序直接结束
肥肠实用的快捷键,谁用谁知道
可以选择自动构造无参和带参构造函数,自动构造set和get函数
46. 关于继承
继承的格式
extends关键字
子类的特点
说白了就是继承和派生
47. 继承中变量的访问特点
子类中找变量的顺序
48. super关键字
访问父类对象
this和super的区别
49. 继承中构造方法的访问特点
子类中构造方法第一句自带super()
自己给出无参构造
50. 继承中成员方法的访问特点
不考虑父亲的父亲
51. 方法重写
在子类中可以重写父类的方法
检查重写父类方法的正确性的注解
方法重写的注意事项
52. 继承的注意事项
Java不能多继承
53. 导包的概述和使用
使用不同包下的类可以导包
54. 权限修饰符
不同修饰符在不同范围下访问权限不同
55. 关键字final
不同修饰符在不同范围下访问权限不同
final修饰局部变量
56. 关键字static
可以使用类名调用
static的访问特点
57. 抽象类
类有抽象方法必须定义为抽象类
抽象类的关键字是abstract
抽象类的成员特点
编译看左边,执行看右边
(适用于用多态的方式创建子类对象,如:
Animal a = new cat())
58. 接口
新建的时候不要选class,要选interface
抽象类的关键字是abstract
接口的成员特点
59. 类和接口的关系
类不能多继承
60. 抽象类和接口
抽象类和接口的区别
警报门的实例
运动员和教练的案例
61. 形参和返回值
类名作为形参和返回值
抽象类名作为形参和返回值
接口名作为形参和返回值
62. 形参和返回值
内部类概述
内部类的定义格式
内部类的访问特点
内部类的分类
成员内部类:
外界创建内部类对象
成员内部类的使用举例
局部内部类:
局部内部类
局部内部类的使用举例
匿名内部类
匿名内部类的使用举例
63. 常用API
Math类的常用方法(在lang包下)
System类的常用方法(在lang包下)
用System类方法算出程序运行时间的小技巧
Object类的概述
看方法的源码的快捷键(或选中方法再右键GoTo→Declaration)
快捷键:Alt+Insert找到toString自动生成
在类中重写Object类的toString方法可以直接输出信息
Object类的常用方法重写(自动生成)
64. 冒泡排序
冒泡排序
冒泡排序的特点
冒泡排序的代码实现
65. Arrays类
要导入Java.util.Arrays包
66. 基本数据类型的包装类
只有char和int特殊
67. Integer类的概述和使用
不用引包
68. int和String的相互转换
前提当然是String里存的是个数
69. 自动装箱和拆箱
基本数据类型和包装类类型的转换
70. 日期类常用方法
要导java.util.Date包
71. SimpleDateFormat类
SimpleDateFormat类概述
SimpleDateFormat格式化和解析日期
72. Calendar类
Calendar类的常用方法
73. 异常
异常概述
出现异常时Java虚拟机的默认处理方案
异常处理的两种方案
74. 异常(续)
try...catch...
try...catch...实例
Throwable的成员方法
编译时异常和运行时异常的区别
75. throws
无限甩锅
76. 自定义异常
自定义异常格式
throws和throw的区别
77. 集合类
集合类体系结构
Collection集合常用方法
Collection集合的遍历
78. List集合
List集合的概述和特点
List集合的特有方法
79. 并发修改异常
解决方案是用for循环遍历
80. ListIterator
在util包下
81. 增强for循环
内部原理是迭代器
82. 数据结构
数据结构概述
83. List集合子类特点
List集合有以上两种
84. LinkedList集合
LinkedList集合的常用方法
85. Set集合
Set集合的特点
Set举例(Set是接口类,需要用HashSet类实现)
HashSet对集合的迭代顺序不做保证
86. 哈希值
LinkedList集合的常用方法
87. HashSet集合
HashSet集合的特点
要保证元素的唯一性,则要重写equals和hashCode方法(注意第6步)
88. LinkedHashSet集合
LinkedHashSet集合的特点
89. TreeSet集合
TreeSet集合的特点(自然排序即是从小到大的顺序)
集合里存储的只能是引用类型(基本类存储时,要用它的包装类类型),add方法里可以直接传int类型而不用Integer类型,因为系统会自动装箱
90. 自然排序Comparable
自然排序Comparable的使用1(无参构造方法)
自然排序Comparable的使用2(带参构造方法)
91. 泛型
泛型概述
泛型定义格式
泛型的好处
92. 泛型类
泛型类的定义格式
93. 泛型方法
泛型方法的定义格式
94. 泛型接口
泛型接口的定义格式