b站韩顺平java基础
- java的特点
java的跨平台性:java一次编译可以到处执行,.java文件经过一次编译后变成.class文件(字节码文件)然后再经过java虚拟机(JVM)编译变成机器语言程序。
-
java开发的注意事项
一个.java文件中最多只能有一个public类,其他类的个数不限,每有一个类经过编译后就会生成一个.class文件。
-
java中的注释
单行注释 /
多行注释 /* */
文档注释
-
相对路径和绝对路径
…\ 代表上一级目录
-
变量
-
+号的使用
-
java数据类型
-
整数类型的细节
-
浮点数类型
注意声明float变量数字后面要加f
float a = 1.1//编译会出错 float b = 1.1f//编译正确
-
字符类型
char c1=97; System.out.println(c1);//输出为a char c2='a'; System.out.println((int)c2);//输出a对应的数字97 //char类型是可以进行运算的,相当于一个整数,因为他有对应的Unicode码 System.out.println('a'+10)//输出107
-
数据类型自动转换
-
类型自动转换时的细节
//进行运算时,精度低的数据类型自动转换成精度高的数据类型
int n1=10;
float d1=n1+1.1//错误 n1+1.1=>结果类型是double
double d1=n1+1.1//对,n1+1.1=>i结果类型是double
float d1=n1+1.1F//对,n1+1.1=>结果类型是float
//char和byte之间不能互相转换
byte b1=10;
char c1=b1//错误,原因byte不能自动转换成char
//byte、short、char他们三者之间可以计算,在计算时首先转换成int类型
byte b2=1;
byte b3=2;
short s1=1;
short s2=b2+s1;//错误,b2+s1=>int
byte b4=b2+b3;//错误,b2+b3=>int
//boolean类型不参加类型自动转换
boolean pass=true;
int num1=pass;//错误,boolean不参与类型的自动转换
//当等号右边都是常量的时候,编译器会自动合并不做类型转换
char c = 'a'+1//不会报错
char ch = c+1//会报错,因为等号右边有变量,编译器不会自动合并,编译器将自动类型转换将char类型转换成int,导致编译报错。
-
强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为小的数据类型。使用时要加上强制转换符(),但可能会造成精度降低或溢出。
int n1=(int)1.9;//结果n1为1,造成精度损失 int n2=(byte)2000;//结果n2为-48,造成数据溢出
-
强制类型转换的细节
-
类型转换练习题
-
基本数据类型和String类型的转换
-
三元运算符
-
标识符的命名规则和规范
-
Scanner类
-
原码、反码、补码
-
for循环
-
while循环
-
数组的声明
//第一种动态分配方式 double[] scores=new double[5]; //第二种动态分配方式 double[] scores; scores = new d[5]; //静态初始化 int[] a = {2,5,6,7};
-
数组的赋值机制
//基本数据类型赋值,赋值的方式是值传递 //n2的变化不会影响n1的值 int n1=10; int n2=n1; n2=80; System.out.println("n1="+n1);//n1=10 System.out.println("n2="+n2);//n2=80 //数组在默认情况下是引用传递,赋的值是地址 //arr2 变化会影响到arr1 int[] arr1={1,2,3}; int[] arr2=arr1;//把arr1的地址赋给arr2 arr2[0]=10 for(int i=0;i<arr1.length;i++){ System.out.println(arr1[i]);//arr1={10,2,3} }
-
冒泡排序
int[] arr = {24,4,45,34};
int temp = 0;
for(int i = 0;i<arr.length-1;i++){//一共排序arr.length-1次
for(int j = 0;j<arr.length-i-1;j++){//每趟排序需要比较arr.length-i-1次
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
-
二维数组
-
二维数组的内存布局
-
创建列数不确定的二维数组
/*创建一个二维数组
1
2 2
3 3 3
*/
int[][] arr = new int[3][];//创建二维数组,但是只确定一维数组的个数,一共有3个一维数组,但是
for(int i = 0;i<arr.length;i++){//遍历arr每一个一维数组
//给每一个一维数组开空间new
//如果没有给一维数组开空间,那么arr[i]就是null
arr[i]=new int[i+1];
//遍历一维数组,并给一维数组中的每个元素赋值
for(int j = 0;j<arr[i].length;j++){
arr[i][j]=i+1;
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)