声明变量
(1)声明变量并赋值:int a=5;
(2)先声明后初始化:int c; c=9;
(3)声明多个变量并初始化:int d=0,e=4;
(4)变量不能使用“关键字”
基本数据类型
(1)基本类型长度及默认值
(2)包装类型
基本数据类型转换:
1.自动转换类型,小类型到大类型
2.强制类型转换,大类型到小类型
在包装类型的比较不要使用==
(3)拆箱、装箱
拆箱:把基本包装类型转换为基本类型 Integer no=1;
装箱:把基本类型转换为对应的包装类型 Interger no2=new Integer(2);
字符串拼接
字符串的前后“+”都是拼接的意思
运算符
运算符:+ - * / %
关系运算符:> < >= <= ==(比较的是“值”是否相等),!=(不等),=表示赋值
逻辑运算符:&&(表示并且) ||(表示或者)
赋值运算符:= += -= *= /= %=
使用++和–运算符
如果写在变量前表示先增加1或者先减少1再使用
如果写在变量后表示先使用在增加或者减少1
&&中的短路,如果条件为false时,则后面的代码不执行
三目运算符:boolean?数1:数2
(1)若boolean为true,则取值为数1(2)若boolean为false,则取值为数2
结构语句
分支
- if(boolean){语句块}Boolean为true,则执行语句块,反之不执行
- switch-case语句是一种特殊的分支结构,可以根据不同的程序入口开始执行,从JDK7.0开始,switch-case支持字符串表达式
循环 - while(boolean){语句块},语法:boolean值为true则继续循环,否则跳出循环
- do{语句块}while(boolean):先执行语句块再进行判断,boolean如果为true则继续执行语句块,直到boolean为false则跳出循环
- 注意:
它和while()循环的区别在于:while()循环是先判断再执行,而do{} while是先执行再判断 - for(表达式1;表达式2;表达式3){语句块}固定循环
for循环执行顺序
表达式1表示一个声明并初始化的语句
先执行表达式1,再执行表达式2(true)然后字执行语句块,再执行表达式3,然后执行表达式2再执行语句块,再执行语句3…
直到表达式2位false则跳出循环
具体有以下几种方式:
(1)for(int i=0;i<10;i++){
语句块;
}
(2)for(;i<10;i++){
语句块;
}
(3)for(int i<0;i<10;){
语句块;
}
(4)for(;😉{
语句块;
}
for循环允许同时出现多个初始化语句,但是只能有一个声明语句,因此需要在初始化表达式中声明多个线路,这些变量应该具有相同的类型 - continue:跳过当前的判断不往下执行并返回循环执行循环
- break:跳出当前循环
- return:跳出方法
函数
- 随机数
(1)Random类提供了响应的随机产生的不同数方法;
(2)Math.random()返回类型是double,如果要此方法产生随机数,需要强制转换为int类型,Random类提供了响应的随机产生随机数的不同方法
Random random = new Random();
int n = random.nextInt(10);
System.out.println(n);
double n = Math.random()*10;
int m = (int)(Math.random()*10);
System.out.println(n);
- 毫秒数currentTimeMillis
System类提供了一个静态方法currentTimeMillis()指当前毫秒数
long time1 = System.currentTimeMillis();
for(int i=0;i<10000;i++){
System.out.println(i);
}
long time2 = System.currentTimeMillis();
System.out.println("执行for循环完毕后一共执行了"+(time2-time1)+"毫秒");
- 数值交换法
- 计算次方math.pow(10,i)
数组
数组的定义:相同数据元素类型的集合,它是一种数据类型(引用数据类型)
- 数组的初始化:
int数组中有三个元素,分别默认初始化为0,0,0
int[] arr = new int[3];//基本类型都在栈中存放
int[] arr2={1,4,7};
int[] arr3= new ine[] {1,2,3}; - 先声明后初始化
int[] arr4;
arr4 = new int[]{1,4,6}; - 数组的访问
(1)通过数组名.length可以获取数组长度
(2)通过下标/索引来访问数组中的元素
(3)下标从0开始,最大到数组的长度-1
//获取数组长度
int n=arr.length;
System.out.println(n);
//获取arr数组中的第一个,第二个,第三个元素
System.out.println("arr2中的第一个元素"+arr2[0]);
System.out.println("arr2中的第一个元素"+arr2[1]);
System.out.println("arr2中的第一个元素"+arr2[2]);
//获取arr数组中的最后一个元素
int a=arr2[arr2.length-1];
System.out.println(a);
//给arr数组中的每一个元素赋值
arr[0]=100;
arr[1]=200;
arr[2]=300;
arr[3]=400;//数组下标越界异常
//数组的遍历
for(int i=0;i<arr.length;i++){
System.out.printn(arr[i]);
}
//随机数的生成并放在数组中
int[] arr5=new int[5];
for(int i=0;i<arr5.length;i++){
arr5[i]=(int)(Math.random()*11);
}
//Arrays.toString()输出数组的一种方法
//数组的排序
//在Arrays类中提供了sort()静态方法,它使用数组的升序排列
Arrays.sort(arr05);
数组的扩容与缩容
public static void main(String[] args) {
//声明一个空的数组
int[] arr={};
int[] arr02=null;//空指针,从栈只想堆的过程中没有对象
//对arr数组进行扩容,Arrays类提供了copyof(a,b)方法
//a:源数组
//b:扩容的长度
arr= Arrays.copyOf(arr,arr.length+1);
System.out.println("长度"+arr.length);
//运用数组扩容的方式给数组添加10个随机数
Random random = new Random();
int[] arr02={};
for(int i=0;i<arr02.length;i++){
arr02=Arrays.copyof(arr02,arr02.length+1);
arr02[i]=random.nextInt(101);
}
System.out.println(Arrays.toString(arr02));
}
数组的复制
/*
数组复制
Arrays.copy(参数1,参数2)
参数1:源数组
参数2:新数组的长度
缺点:不灵活,效率低
*/
int[] arr={2,3,4,5};
int[] newArr=Arrays.copyOf(arr,5);
System.out.println(Arrays.toString(newArr));
/*
System.arraycopy(参数1,参数2,参数3,参数4,参数5)
参数1:源数组名
参数2:源数组下标(起始位置)
参数3:目标数组
参数4:目标数组下标(起始位置)
参数5:从源数组复制的个数(长度)
特点:灵活性好,效率高
*/
int[] newArr02=new int[6];
System.arraycopy(arr,1,newArr02,1,2);
二维数组
如果一维数组中的各个元素仍然是一组数组,那么它就是一个二维数组,二维数组用于表示表中的信息以行和列的形式组成。第一个下表代表元素所在的行,第二个元素代表元素所在的列
二维数组的声明
类型[][]名称;
二维数组里存放的一维数组:
类型[][]名称={数组1,数组2,数组3,数组n;
int[] arr={2,3,4,5};//二维数组的声明并初始化
int[][] arr01={{5,4,3,2},{1,2,3,4}};
二维数组的声明并初始化
int[][] arr02=new int[2][4];
二维数组的长度一般指的是行,用.length
int n=arr01.length;
int n1=arr01[1].length;
arr01二维数组中的第二个元素的长度
int n1=arr01[1].length;
获取二维数组中的元素,获取arr01的二维数组中的第一个元素的第三个元素
System.out.println(arr01[0][2]);
给二维数组中的元素赋值
arr01[1][1]=11;
System.out.println(arr01[1][1]);
质数问题
/**
* 质数问题
* @author 臻冉
*
*/
public class demo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入查找质数的范围:");
int n=scanner.nextInt();
int m=scanner.nextInt();
int z=0;//质数个数
for(int i=n;i<=m;i++){
boolean flag=true;
for(int j=2;j<i;j++){
if(i%j==0){ //判断是不是质数
flag=false;
}
}
if(flag==true){
z++;
System.out.print(i+" ");
if(z%10==0){ //超过10个质数换行
System.out.println();
}
}
}
System.out.println("有"+z+"个质数");
}
}
这篇博客总结了Java的基础知识,包括声明变量、基本数据类型及其转换、字符串拼接、运算符、结构语句(如if和循环)、函数应用以及数组的操作。详细讲解了变量声明的方式、数据类型的默认值、字符串连接、运算符的使用规则,还有循环结构如while和for的执行流程,以及如何使用函数生成随机数。最后,介绍了数组的初始化、访问、长度获取以及数组的复制和二维数组的概念。

被折叠的 条评论
为什么被折叠?



