目录
一、数据类型
数据类型分为基本数据类型(4类8种)和引用数据类型
1.基本数据类型
整型(整数) : byte(字节型) short(短整型) int(整型)(常用) long(长整型)
浮点型(小数) : float(单精度浮点型) double(双精度浮点型)
字符型(单个符号) : char
布尔型(判断对错) : boolean
2.引用数据类型
String、数组、类、接口、基本数据类型的封装类型.......
3.数据类型强制转换
隐式转换(直接转换) : 直接将小的数据类型转换成大的数据类型
强制转换 : 将大的数据类型转换成小的数据类型
二、运算符
算术运算符: + - * / % ++ --
比较运算符: > < ==(等于) !=(不等于) >= <=
赋值运算符: += -= *= /=
三目运算符: ? :
逻辑运算符: & | ! ^ &&(短路与) ||(短路或)
位运算符: &(按位与) |(按位或) ^(按位异或 ) ~(按位取反)
>>(有符号右移) <<(左移) >>>(无符号右移)
三、一些常用类和方法及经典算法
//扫描器
Scanner sc = new Scanner(System.in);
//随机数
int a = (int)(Math.radom()*100);
//比较字符串是否相同(返回boolean值)
m.equal(n);
//开方
Math.sqrt(c);
//数组内的元素排序
Array.sort(arr);
//冒泡排序
for(int i = 0; i < arr.length - 1; i++) {
for(int j = 0; j < arr.length - i - 1; j++) {
if(arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
//二分查找
int start = 0;//第一个元素的下标
int end = arr.length - 1;//最后一个元素的下标
while(start <= end) {
int mid = start + (end - start) / 2;
if(num < arr[mid]) {
end = mid - 1;
}else if(num > arr[mid]){
start = mid + 1;
}else {
System.out.println("您要找的元素的下标是:" + mid);
break;
}
}
四、流程控制(分支语句)
1. if else 多种用法
①: if (条件表达式/值) {执行语句1}
②: if (条件表达式/值) {执行语句1}
else {执行语句2}
③: if (条件表达式/值) { 执行语句1}
else if (条件表达式/值){执行语句2}
else if (条件表达式/值){执行语句3}
else{执行语句4}
④: if ( 条件表达式/值) {
if(条件表达式/值){执行语句1}
else{执行语句2}
}
2.swith用法
switch(条件表达式/值){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
....
case 值n:
执行语句n;
break;
default:
执行语句n+1;
}
五、循环语句
1.for循环
for(初始化条件表达式;条件表达式;控制条件表达式){
循环的语句体;
}
执行流程:
1、执行初始化条件表达式,只执行一次
2、执行条件表达式,看条件是否符合,如果结果为true就执行语句体,如果为false循环结束
3、执行循环语句体
4、执行完成之后,对原来的条件做改变,执行控制条件表达式
2.while循环
while(条件表达式){
语句体;
控制条件表达式;
}
执行流程:
1、执行初始化条件表达式
2、执行条件表达式,如果结果为true就执行循环体,如果结果为false就不执行
3、执行循环体
4、执行控制条件表达式
3.do while循环
do{ 循环体;
控制条件表达式;
}while(条件表达式);
执行流程:
1、执行初始化条件表达式
2、执行循环体
3、执行控制条件表达式
4、执行条件表达式,如果条件表达式为true,就执行循环体,如果为false,就不执行
4.死循环
①:for(;;) {}
②:for(int i = 1; ; i++) {}
③:while(true) { }
5.break和continue
break:跳出当层循环,如只有一层循环则停止循环
continue:跳过这一次循环,继续下一次循环
六、数组
1.一维数组
概念:数组是用来存储多个相同数据类型的元素的集合
动态初始化,先开辟空间,在存储值
数据类型[] 数组名 = new 数据类型[数组长度];
静态初始化,一边存储值,一边开辟空间
数据类型[] 数组名 = {值1,值2,值3......};
数据类型[] 数组名 = new 数据类型[]{值1,值2,值3......};
int[] a = new int[5];
int[] b ={1,3,2};
1、数组中的元素的数据类型必须是一致的
2、当定义数组的时候,会开辟连续的内存空间,存储数据元素,我们可以通过连续内存空间的地址
来访问数组中的元素
3、数组是引用数据类型
4、数组中的元素的数据类型可以是基本数据类型,也可以是引用数据类型
5、数组的长度一旦定义就不可以改变了
2.二维数组
动态初始化:
数据类型[][] 数组名 = new 数据类型[m][n];
m:二维数组中有几个一维数组
n:一维数组中有几个元素
m必须有值,n可以没有值
静态初始化:
数据类型[][] 数组名 = {{元素1,元素2...},{元素1,元素2...},...};
int[][] a = new int[5][];
int[][] b = new int[5][4];
int[][] b = {{1,8,4}{2,7}};
七、集合
1.集合的定义
ArrayList<引用数据类型> 变量名 = newArrayList<引用数据类型>();
ArrayList<String> s =new ArrayList<String>();
2.集合的几种方法
add(E obj) :将指定元素obj追加到集合的末尾
add( int index, E obj) :将指定的元素obj插入到index的位置
get(int index) :返回集合中指定位置上的元素
size() : 返回集合中的元素个数
add(int index, Object ob) : 将指定元素obj插入到集合中指定的位置
remove(int index) : 从集合中删除指定index处的元素,返回该元素
clear() : 清空集合中所有元素
set(int index, Object obj) : 用指定元素obj替代集合中指定位置上的元素
八、面向对象
1.类
类:具有相同的属性或者特性的一类事物
2.属性
访问控制修饰符 数据类型 属性名;
访问控制修饰符:
private(私有的):使用private修饰的元素,只能在同一个类中访问
public(公有的):使用public修饰的元素,可以在整个项目中访问
默认不写的(package/default):使用default修饰的元素可以在同一个类和同一个包中访问
protected(受保护的):使用protected修饰的元素可以在同一个类,同一个包,不同包的子类中访问
public String eid;
private String name;
int age;
3.对象
类名 对象名 = new 类名();
Dog a = new Dog();
4.函数(方法)
访问控制修饰符 返回值的数据类型/void 方法名(数据类型 参数名1,数据类型 参数名2...){
方法体;
return 值;}
//方法根据有没有参数和有没有返回值
//无参无返回
public void a() {
}
//无参有返回
public void a() {
int c =0;
return c;
}
//有参无返回
public void a(int b) {
}
//有参有返回
public void a(int b) {
return b;
}
//set 方法
public void setId(int id){
this.id = id
}
//get 方法
public int getId(){
return id;
}
//toString 方法
public String toString(){
return id;
}
5.构造函数
1.无参构造函数
访问控制修饰符 类名(){
}
public Student(){
}
2.有参构造函数
访问控制修饰符 类名(参数列表){
this.属性 = 参数;
}
public Student (int id){
this.id = id;
}
总结
以上就是学习java两周的所有内容,只要是列了一下重要的知识点,没有深入,希望通过这种知识梳理的方法,锻炼自己的信息归类能力,当自己看到一个知识点时能够上下延申。