javaSE 笔记,jdk + 标识符定义规则 + 短路逻辑运算符 + 方法重写+ StringBuilder + ArrayList
JRE和JDK的区别
JVM是支持java跨平台的一个"翻译",叫做java虚拟机,有了Windows版JVM就可以在Windows上运行java程序,MAC,Linux同理。
JRE 是 java 的运行时环境,所以运行java程序只需要JRE就行了,因为他包含JVM和运行时所需要的核心类库,JVM如上,安装JRE就能保证java程序的跨平台。
JDK 是开发包,包含JRE和开发人员使用的工具,包含编译工具(javac.exe)和运行工具(java.exe),所以要开发java程序,必须装JDK。
Path环境变量配置
因为开发java程序,需要使用JDK提供的开发工具,这些工具在JDK的安装目录的bin目录下。其中javac和java这两个指令在jdk的bin文件下。使用这两个指令时为了避免带上复杂的路径,直接将bin文件路径放在Path环境变量下,可以一劳永逸。
HelloWorld 案例
开发java程序,分为三步:编写程序,编译程序,运行程序。编写程序可以用txt或者notepad,最后保存成HelloWorld.java。然后cd到文件路径下, 编译程序:dos中执行 javac 文件名.java 。 运行程序, java HelloWorld 。
数据类型
不同的数据类型分配了不同的内存空间。
byte->short->int->long-> float->double->char->boolean 分别占 1248 4821个字节。
变量使用的问题
当定义一个整数时,会默认为int类型,如果想要定义long 类型,得在后面加L, 例如 long l = 100000000000L
当定义浮点数时,默认为double类型,所以为了防止不兼容的类型,要在后面加f,例如float f = 13.14F
标识符定义规则
1.由数字、字母、下划线、美元符组成
2.不能以数字开头
3.不能是关键字
4.区分大小写
命名约定: 小驼峰 name firstName(针对方法和变量) 双驼峰 Student GoodStudent (针对类)
类型转换
只能从小范围类型转换成大范围类型,或者使用强制类型转换(大 转 小)
短路逻辑运算符
&&与& :左边为假,右边就不计算了
||与| :左边为真,右边就不计算了
三种循环
for while do..while
1.for和while是先执行,后判断。do..while是先判断,后执行。
2.for循环条件控制语句所控制的变量作用域只在for循环中,但是while的控制变量在while循环外还能继续使用。
跳转控制语句
continue:跳过某次循环体内容,继续下次执行
break : 跳出上个循环
IDEA内容辅助键
快速生成main()方法:psvm,回车
快速生成输出语句: sout,回车
内容提示,代码补全:Ctrl+Alt+Space
Ctrl+/ ,单行注释,再来一次,取消
Ctrl+Shift+/ 多行注释,同理
格式化:Ctrl+Alt+L 自动对齐等
方法重载
重载仅针对同一个类中的方法的名称与参数进行识别,与返回值无关, 即不能通过返回值来判定。仅与参数的数量与类型有关
方法重写
是在子类中对父类相同的方法进行重写,或者叫做覆盖,在那个方法的上面可以加上 @override 作为标注
成员变量和局部变量的区别
| 区别 | 成员变量 | 局部变量 |
|---|---|---|
| 类中位置 | 类中方法外 | 方法内或者方法声明 |
| 内存位置 | 堆内存 | 栈内存 |
| 生命周期 | 对象消失就消失 | 方法调用完就消失 |
| 初始化值 | 有默认值 | 无默认值 |
this关键字
看C++更容易懂,是一个常量指针。java中代表所在类的对象引用,方法被哪个对象调用,this就代表哪个对象。
封装
首先是利用private关键字能够实现将类的某些信息藏在类内部,不允许外部程序直接访问,只能通过类内的方法来控制,保证代码安全。
其次可以增加程序的复用性。
String和StringBuilder
当对字符串进行拼接的时候,都会构建一个String对象,耗时又浪费内存空间。比如
String s = "lcy";
s += "caiji";
在堆内存的常量池里会有"lcy" , "caiji", "lcycaiji"三个字符串。
我们可以用StringBuilder来解决这个问题,因为我们可以将其看成是一个容器,而StringBuilder的内容是可变的,他在做拼接的时候不会创建新的对象。
另外,StringBuilder相比于String多了reverse 和append方法,所以用StringBuilder会比较方便,之后再用toString转成String就可以了。
ArrayList
有点像C++的容器,里面可以存放任意类型的数据,比如类的对象,提供了一种存储空间可变的存储模型,存储的数据容量是可以发生改变的。font>
用法是ArrayList
ArrayList常用方法可以查api,最主要的有remove,set,get,size
学生管理系统
单独写一块,主要是记录一些需要重构的地方,原来写的太丑陋了。

浙公网安备 33010602011771号