1、JDK JRE JVM 的作用
JDK 编写程序的时候使用;JRE 已有一个程序运行的时候使用 ;JVM java运行虚拟机
2、JDK JRE JVM 三者的关系
JDK包含JRE,JRE包含JVM
3、java 跨平台原理
JVM 翻译
编译:是指将我我们编写的Java源文件翻译成jvm认识的class文件,在这个过程中Javac编译器会检测我们所写的程序是否有错误,有错误提示,没有错误变异成功。
4、注释的作用及分类
注释的作用更好的解释代码 单行注释 // 多行注释 /* */
5、关键字是什么 特征 常见和关键字
关键字:在程序中具有特殊含义的单词
特征: a、全部小写 b、在Notepad++中变色
常见的: public class static void 等
6、标识符
在程序中我们自己定义的内容。eg:类名、方法名变量名等
命名规则(硬性要求)
标识符可以包含26个英文字母,0-9数字,$(美元符号)_(下划线)
标识符不能以数字开头
标识符不能是关键字
命名规范(软性)
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)
方法名规范:首字母小写,后面每个单词首字母大写(小驼峰式)
变量名规范:全部小写。
7、什么是常量,有哪些分类
常量:在程序中固定不变的量
分类:
整数常量 (所有整数) 直接写上数字没有小数点
浮点数常量 (所有小数)直接写上数字有小数点
字符 常量 凡是用单引号引起来的部分叫字符常量,只能有一个字符必须有内容
字符串常量 凡是双单引号引起来的部分叫字符串常量
布尔 常量 只有两种 true false
空 常量 null
8、数据类型分类
基本数据类型 整数 浮点数 字符 布尔
引用数据类型 类 数组 接口
基本数据类型 (四类八种)
整数 byte short int(默认) long
浮点数 float double (默认)
字符 char
布尔 boolean
9、变量
在程序中可变的量
格式
数据类型 变量名 =数据值;
注意事项:
变量名称:在同一个大括号内,变量的名字不可以相同
变量赋值:定义的变量,本赋值不能使用
数据类型转换
1、自动转转(隐式):将取值范围小的类型自动提升为取值范围大的类型。
转换规则:范围小的类型向范围大的类型提升,byte、short、char运算时直接提升为int
byte、short、char-->int-->long-->float-->double
2、强制转换(显式):将取值范围大的的类型强制转换成取值范围小的类型。
注意:
浮点数转换成整数,直接取消小数点会造成损失精度
int强制转换成short砍掉两个字节,可能造成数据损失
3、ASCII编码表
'0' 48
'9' 57
'A' 65
'Z' 90
'a' 97
'z' 122
运算符
算术运算符: +加 , - 减, *乘, / 除, % 模, ++自增,--自减
Java中整数使用加减乘除模自增自减无论怎么计算也不会得到小数
自增自减 :前++ (前--)先加后用(先减后用)后++(后--)先用后加(先用后减)
1、单if语句
格式
if(判断语句){
语句体;
}
2、互斥if语句
格式:
if(判断语句){
语句体1;
}else{
语句体2;
}
3、多if语句
格式:
if(判断语句1){
语句体1;
}else if(判断语句2){
语句体2;
}
...
else if(判断语句n){
语句体n;
}else{
语句体n+1;
}
4、switch
格式:
switch(表达式){
case 常量值1:
语句体;
break;
....
case 常量值2:
语句体;
break;
default :
语句体;
break;
}
注意事项: 表达式只能为 byte,short,char,int,enum(枚举) JDK7以后 可以用String(字符串)
5、循环语句
4要素
1初始化语句
2判断语句
3循环体,也叫语句体
4步进语句
6、for循环
for(初始化语句;判断语句;步进语句){
循环体;
}
特征:明确次数循环
7、while循环
标准格式:
while(判断语句){
循环体
}
扩展格式:
初始化语句
while(判断语句){
循环体
步进语句
}
特征:不知道循环次数
8、do..while循环
标准格式:
do{
循环体
}while(条件判断);
扩展格式:
初始化语句
do{
循环体
步进语句
}while(条件判断);
特征:至少也要循环一次
break
1. 可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
2.在循环中,结束本次循环
continue:
跳过本次循环,进入下次循环
9、死循环
while(){
}
1、Idea:
结构
项目
模块
包,公司的域名
文件.java
idea 快捷键
alt+/ 自动补全
ctrl+alt+L 自动对齐/整理代码
ctrl+y 删除光标所在行
ctrl+D 复制光标所在行
ctrl+alt+v 补全变量名
alt+enter 万能键
ctrl+/ 单行注释
ctrl+shift+/ 多行注释
shift+alt+↑或 ↓ 光标所在行代码移动
psvm main方法
sout 输出语句
2、方法:
格式:
修饰符 返回值类型 方法名(参数类型 参数名,.....){
方法体
return 返回值;
}
3、调用
单独调用
方法名();
赋值调用
数据类型 变量名 = 方法名();
打印调用
输出语句(方法名());
注意事项:
1、方法顺序没有关系
2、方法定义在类中
3、方法不能嵌套
4、方法定义不能执行,要想执行,必须调用
5、在用返回值的时候一定要注意【返回值】要和【返回值类型】类型保持一致
6、return 后面只能跟返回值
4、重载:
概念: 方法名相同,参数列表不同、
参数列表:
个数不同
参数类型顺序不同
参数类型不同
在同一个类中,方法名相同,参数列表不同和返回值无关
数组:
1、概念: 数组是一个容器,保存多个数据
2、特点:
3、数组是一个引用数据类型
数据可以保存多个数据,但是数据类型一致
数据的长度一旦定义,不可更改
4、格式:
动态
数据类型[] 数组名称= new 数据类型[数组长度];
静态
数据类型[] 数组名称 = new 数组类型[]{元素1,元素2,.....};
数据类型[] 数组名称 ={元素1,元素2,.....};*不能拆分
5、打印元素
数组名称[索引值]
*索引值 从0开始 到【数组长度-1 】
6、数组赋值
数组名称[索引值]=数据值;
7、内存;
栈:运行的方法,局部变量 局部变量:定义在方法中的变量;
堆:new 出来东西
方法区:.class文件
本地方法栈
寄存器
8、数组的长度; 数组名称.length
9、求最大值
public static void main(String[] args) {
int[] arr = {5,15,30,20,1000,39,50};
int max =arr[0];
for (int i = 1; i < arr.length; i++) {
if(arr[i] > max){
max =arr[i]; }
}
System.out.println("最大值:"+max);
}
10、数组反转
for (int min = 0, max = array.length - 1; min < max; min++, max--) {
int temp = array[min];
array[min] = array[max];
array[max] = temp;
}
方法中,任何类型都可以做参数,任何类型都可以做返回值
数组做参数的时候 地址传递
数组做返回值的时候 地址传递
|
|