JDK,JRE,JVM

1.JDK是什么?有哪些内容组成?
JDK是Java开发工具包
JVM虚拟机:Java程序运行的地方
核心类库:Java已经写好的东西,我们可以直接用。
开发工具:javac、 java、jdb、 jhat…
2.JRE是什么?有哪些内容组成?
JRE是Java运行环境
JVM、核心类库、运行工具
3.JDK,JRE,JVM三者的包含关系
JDK包含了JRE
JRE包含了JVM

数据类型

字面量

字面量(数据在程序中的书写格式):整数,小数,字符串,字符,布尔,空
特殊字面量的书写:制表符\t,空null

基本数据类型

八种基本数据类型:byte(Byte),short(Short),int(Integer),long(Long),float(Float),double(Double),char(Character),boolean(Boolean)
大小关系:double,float,long(8),int(4),short(2),byte(1)

引用数据类型

类、数组、接口、枚举、泛型

标识符命名规则

1.由数字,字母,下划线,$组成
2.不能由数字开头,不能是关键字,区分大小写
3.最好见名知意
4.方法、变量小驼峰:一个单词全小写,多个单词第一个首字母小写,后面大写
5.类名大驼峰:每个单词的首字母大写

项目结构

project,module,package,class(测试类,定义类)

隐式转换和强制转换

1.隐式转换:小的数据类型和大的数据类型进行运算时,会先转化为大的数据类型如byte,short,char在进行运算时,会直接转化为int(char+char=int)
2.强制转换:大的数据类型转化为小的,有可能造成数据丢失

运算符

1.“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串。连续进行"+"操作时,从左到右逐个执行。
2.扩展运算符+=,-=, =,/=,%= 隐含了强制类型转换*
3.自增和自减运算符(++和–):
单独放在一行时,放在前面和后面得到的结果都一样;参与运算时,放前面时先自增(减)再参与运算,放后面时先参与运算,再自增(减)
4.四种逻辑运算符: & 都真才真, | 都假才假, ^ 相同为假,不同为真, ! 取反
5.短路逻辑运算符: &&前假即假,||前真即真,提高运行效率,可连接三个判断
6.三元运算符:关系表达式?表达式1:表达式2(等价于if-else、可以级联但不建议)

if-else和switch-case

if if-else if-else if-else判断范围
switch-case将数据一一列举出来从中选择一个

数组

数组动态初始化和静态初始化的区别

动态初始化:手动指定数组长度,由系统给出默认初始化值。
只明确元素个数,不明确具体数值,推荐使用动态初始化
静态初始化∶手动指定数组元素,系统会根据元素个数,计算出数组的长度。
需求中已经明确了要操作的具体数据,直接静态初始化即可。

数组的内存

图片损坏 new出来的是在堆内存中开辟了一块新的内存空间,基本数据类型直接存值,引用数据类型存地址值 基本数据类型: 数据值是存储在自己的空间中 特点: 赋值给其他变量,也是赋的真实的值。 引用数据类型: 数据值是存储在其他空间中,自己空间中存储的是地址值。 特点: 赋值给其他变量,赋的地址值。 ## 数组间的赋值 将一个数组赋值给另一个数组,实际上是将地址值传递,因此对其中任一数组中元素的改变都会影响另一个数组,本质上这两个数组除了名字以外没什么不同

方法

方法的定义

1.方法是程序中最小的执行单元。
2.实际开发中遇到重复的代码、具有独立功能的代码可以抽取到方法中。
3.方法可以提高代码的复用性可以提高代码的可维护性

1
2
3
4
//格式:
修饰符 返回值 方法名(形式参数){
方法体;
return 返回值;

方法的特点

方法不调用就不执行,互相间是平级关系,不能嵌套定义(一个方法不能定义在另一个方法的里面)

方法重载

方法名相同(实现相似的功能),而形参不同(个数,类型,顺序),与返回值无关

方法内存

图片损坏 方法被调用后进栈,执行完出栈,并将返回值返回至调用处

方法的值传递

传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值(方法中对参数的重新赋值只作用于方法中)
传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值