java基础
JavaSE 超全总结
10万字Java高频面试题
如何理解API,API 是如何工作的
java语言的三大版本
JavaME 小
JavaSE
JavaEE(J2EE) 大
JDK JRE JVM
JDK:java开发工具包,JDK包含JRE
JRE:Java运行环境,JRE包含JVM
JVM:Java虚拟机
成员变量和局部变量的区别
标识符和变量
标识符:
规则:标识符可以是字母、下划线、美元符、数字的任意组合。
但不能是以数字开头,不能使用关键字,不建议使用中文,不能包含#这样的特殊字符。
使用规范:
表示类名的标识符:首字母大写。
表示方法和变量的标识符:驼峰命名法。第一个小写,第二个大写。
Java中数据类型分类
八大基本数据类型:
char byte boolean 一个字节
short int long 四个字节
float 低精度,double 高精度
引用类型:Class interface array
可以通过new创建,除了接口。使用时本质就是在读取他的内存地址。
i++是1,++i是2
String类型
&&和&的区别
|| 和 | 的区别
四类运算符
算数运算符>比较运算符>逻辑运算符>赋值运算符
单目 !
双目 +
三目 :?
流程控制
for循环、while循环、do-while循环 三大循环
while循环和do-while循环 区别:
1. while循环先判断再循环,可能循环体一次也没有执行
2. do-while循环先执行再判断,循环体至少执行一次
3. 如果while循环第一次判断为真,两种循环无差别;两种循环效率上没有差别
循环次数固定,建议使用for
循环次数不固定
先执行再判断,建议使用do-while
先判断再执行,使用while
实际开发,for使用频率高,然后是while,最后是do-while
continue语句和break语句 区别:
1. continue跳过本次循环,执行下次循环。
用在while,do-while中,continue 语句立刻跳到循环首部,越过了当前循环的其余部分。
2. continue用在for循环中,跳到for循环的迭代因子部分。
3. break用于强行退出循环,不执行循环中剩余的语句。跳出整个循环。
引用类型进行比较时:
1. == : 比较的是地址
2. equals(): 比较的是实际存储的值
字符串常量值
数组的创建方式3种
都输出ad
数组的删除
数组的移动
char[] arr = new char[]{'a', 'b', 'c', 'd'};
arr[1]='\0';
for (int i=1;i<arr.length-1;i++){
arr[i] = arr[i+1];
}
arr[arr.length-1] = '\0';
for (int i=0; i< arr.length;i++) {
System.out.println(i + "" + arr[i]);
}
数组的倒序输出
int arr[]={1,2,3,4,5};
for (int i = 0; i < arr.length / 2; i++) {
//两个变量的值之间的交换, 借助于一个临时变量,每一行代码最后是下一行的开头。
// arr[i] -> arr[arr.length-1-i]
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
for (int i : arr) {
System.out.print(i + "\t");
}
利用第三方变量
利用加减
位运算替换,异或
面向对象
面向对象和面向过程
面向过程关注如何按照步骤执行
面向对象关心如何设计事物
都是解决问题的思维方式,都是代码组织的方式。
面向过程是一种“执行者思维,解决简单问题可以使用面向过程。
面向对象是一种“设计者思维",解决复杂、需要协作的问题可以使用面向对象。
面向对象离不开面向过程:
宏观上:通过面向对象进行整体设计
微观上:执行和处理数据,仍然是面向过程。
类和对象
类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。
类是具有共同特征事物的抽象,对象则是类的实例化。
入口函数中的参数
表示程序的入口
public static void main(String[] args) {
}
方法重载
方法重载概述
在同一个类中,存在一个以上同名的方法,只要它们的参数个数或参数类型(形参列表)不同即可。
方法重载特点
与返回值类型无关,只看方法名和参数列表
构造方法
有参和无参
this关键字的作用
作用:
1、解决同名问题,标识局部变量和成员变量的区别。
2、调用本类的其他构造方法
static 静态关键字
修饰成员变量、方法、代码块
总结:static变量和非static变量的区别:
1、份数不同:静态变量:1份;非静态变量:1个对象一份
2、存储位置不同:静态变量:方法区;非静态变量:堆中
3、内存分配空间的时间不同:静态变量:第一次加载类的时候;非静态变量:创建对象的时候
4、生命周期不同。静态变量和类的生命周期相同;非静态变量的生命周期和所属对象相同
5、调用方式不同
静态变量: 通过类名调用 Student.classRoom
也可以通过对象名调用stu1.classRoom ="301" 不