1.JAVA实现跨平台的原理
因为Java提供了对应系统版本的JVM(运行Java程序的虚拟机),这是Java跨平台的本质
2.JDK/JRE/JVM 三者的关系
JDK>JRE>JVM
4.JAVA中的重要命令
javac 编译
java 运行
5.如何配置环境变量
*此电脑右键属性--高级系统设置--环境变量
*新建JAVA_HOME,路径填写JDK安装路径不包括bin
*在Path中编辑,添加%JAVA_HOME%\bin
*向上移动至第一行
6.注释的种类
*单行注释 //注释内容
*多行注释 /*注释内容*/
*文档注释 /**注释内容*/
7.数据类型(int double为默认类型)
-常量
*字符串常量 //String 同时还是引用类型
*整数常量
*浮点数常量
*字符常量
*布尔常量
*空常量
-基本数据类型
*整数型 byte -128 至 127
short -32168 至 32767
int 正负2^31
long(后缀加上大写的 L ) 正负2^63
注意取值范围
*小数型 float(后缀加上大写的 F ) double
*字符型 char
*布尔型 boolean
-引用数据类型
*数组
*字符串
*类
*lambda
8.ASCLL 编码表
48 --> '0'
65 --> 'A'
97 --> 'a'
9.变量的定义格式及命名规则
*见名知意,驼峰命名
*变量/方法名
一个单词,全都小写,多个单词,从第二个开始首字母大写
*类名
一个单词首字母大写,多个单词,每个单词首字母大写
10.作用域(作用范围)
*一对大括号
11.运算符和表达式
*算数运算符 + - * / %
*自增自减运算符 ++ --
== **(注意位置 在前面先加/先减再用 在后面先用后加/后减,常量是不可以使用的)**==
*逻辑运算符 & && | || ! ^ (注意 && || 的短路效应)
*字符串的拼接 +
*比较运算符 > < >= <= == !=
*赋值运算符 =
*三元运算符 数据类型 变量名 = 条件判断 ? 表达式1 : 表达式2
(结果必须被调用,否则将没有意义)
*+= -= *= /= %=
12.类型转换
*自动转换
特点: 代码不需要特殊处理
规则: 数据范围从小到大
*强制转换
特点:代码需要特殊的格式处理
格式:范围小的类型 范围小的变量名 = (范围小的类型)范围大的类型
例:int number = (int)100L;
注意:谨慎使用,会有精度损失,造成数据溢出
13.流程控制语句
*顺序结构:从上到下,一行行执行
*选择结构:根据条件执行对应的语句
switch...catch...default / if / if...else / if...else if...else
*循环结构:for/while/增强for/do...while循环 (区别)
*do..while 方法体至少会执行一次
14.在idea中创建一个空项目以及添加新模块
*注意命名规则
*java文件和class文件:
java文件:源代码文件
作用:提供给程序员进行编写或者修改使用的。
但是java文件并不能直接运行,因为jvm不认识。
class文件:字节码文件 (在运行过程中是不变的)
是提供给jvm进行运行用的。
从java文件到class文件需要编译(javac)
15.数组 (可以理解为一个容器)
*动态初始化 数据类型[] 数组名 = new 数据类型[长度];
*静态初始化 直接赋值 数据类型[] 数组名称 = {元素1,元素2...};
*索引 从0开始,而且连续不间断
数组的最大索引:数组.length - 1;
可以获取数组中的元素个数:length属性
*、数组中存在的两个问题
1、数组索引越界 ArrayIndexOutOfBoundsException
访问了数组中不存在的索引。
2、空指针异常 NullPointerException
访问了本身就不存在的内容。
*数组的遍历 循环
16.内存分配
*栈:存放的是局部的东西,局部变量(局部就是方法)
对象的引用
方法
*堆:只要是new出来的,都在堆中。
*方法区:存放的是被加载之后的class文件。
常量池
静态区
字节码文件
*本地方法栈 和系统相关的东西
*寄存器 和cpu相关的东西
17.方法 (代码集,一个完整的功能。方法 --> 具体的功能模块)
*方法的基本定义 public static void 方法名(){ 方法体; }
*注意:方法在定义完成之后,不能自己执行,需要被调用,
同时,在main方法所在的类中定义的方法必须使用static修饰,
因为静态只能访问静态,具体请参考static关键字的使用
*参数:方法中的参数是可以有多个的
如果有多个中间使用逗号分隔,目的是接收数据
*形参和实参
*形参:形式参数,用来接收实参。
*实参:实际参与运算的数据。
*返回值:方法执行完成后,返回给调用者的数据
*返回值类型:作用是用来确定返回的数据是什么类型的
返回值类型和参数列表中的数据类型并没有关系
*return:返回,将数据返回给调用者并结束方法。
*注意:返回值不同的方法的调用方法
*方法重载
在同一个类中,出现了方法名称相同,参数列表不同。
参数列表不同:个数不同/类型不同(顺序不同)
*方法重写
在子类中,出现了和父类中一模一样的方法,只有方法体不同
18.面向对象
*强调的完成某件事情,我该找谁去做
*什么是类 :是对具体事物描述
属性 --> 成员变量
行为 --> 成员方法
*什么是对象
就是客观存在的实体(事物)
*类与对象的关系
对象就是类的具体体现,类是对象的抽象描写
*类的定义
在同一个java文件中可以定义多个类,但是这些类都是平级。
这些类 public 修饰的只能有一个
*面向对象的三大特征
继承 / 多态 / 封装
*构造方法的注意事项
*如果我们没有提供任何的构造方法,系统会默认提供一个无参构造方法。
*如果我们提供了任何一个构造方法,系统将不再提供构造方法。
*构造方法是可以重载的。
无参构造方法
满参(全参)构造方法
*构造方法名称必须要和类名一致。不要提供任何的返回类型
*****总结**** 面向对象就是使用别人造好的工具来完成功能
19.在堆内存中的变量是有默认值
*所有引用数据类型的默认值:null
*基本数据类型:
整数 --> 0
小数 --> 0.0
布尔 --> false
字符 --> \u0000
20.成员变量和局部变量的区别
局部就是方法
*定义的位置
局部变量:定义在方法内,或者方法的声明上(就是形参)
成员变量:定义在类中,方法外。
*在内存中的位置
局部变量:在栈中,当方法调用的时候,局部变量定义成功,当方法执行完成之后,局部变量消失
成员变量:在堆中,跟着对象的。当对象创建成功之后,成员变量定义,当对象消失,成员变量消失。
*生命周期
局部变量:随着方法的调用而产生,随着方法的完成而结束
成员变量:随着对象的创建而产生,随着对象的消失而消失。
*初始化赋值
局部变量:没有默认初始化,在使用之前必须要赋值。
成员变量:有默认初始化。
21.标准类(JAVA Bean)的组成
*私有成员变量
*提供无参构造方法
*提供满参构造方法
*给每一个成员变量提供getter和setter方法
*重写toString方法
22.常用API
*应用程序编程接口/ /API是java提供的一些类或者接口
*常用的java类(方法可查api手册,就不详细赘述)
**但凡不是Java.lang包下的类,使用的的时候都是需要导包的**
*Scanner 键盘输入类
*Random 随机数类
*String 字符串类
注意 如果一个对象打印输出的时候,不再是地址值。
那么他打印输出的是该对象中的内容
String是引用数据类型,但是同时也是常量
或者重写了toString方法
*StringBuilder 字符串操作类
*StringBuffer 字符串操作类
*Math 数学计算类
*System 系统类
*Date 日期类
*Object 所有类的根类
*SimpleDateFormat 日期格式化类
*Calendar 日历类
Collections 集合操作工具类