java基础总结001

这篇博客总结了Java的基础知识,包括声明变量、基本数据类型及其转换、字符串拼接、运算符、结构语句(如if和循环)、函数应用以及数组的操作。详细讲解了变量声明的方式、数据类型的默认值、字符串连接、运算符的使用规则,还有循环结构如while和for的执行流程,以及如何使用函数生成随机数。最后,介绍了数组的初始化、访问、长度获取以及数组的复制和二维数组的概念。

声明变量

(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

结构语句

分支

  1. if(boolean){语句块}Boolean为true,则执行语句块,反之不执行
  2. switch-case语句是一种特殊的分支结构,可以根据不同的程序入口开始执行,从JDK7.0开始,switch-case支持字符串表达式
    循环
  3. while(boolean){语句块},语法:boolean值为true则继续循环,否则跳出循环
  4. do{语句块}while(boolean):先执行语句块再进行判断,boolean如果为true则继续执行语句块,直到boolean为false则跳出循环
  5. 注意:
    它和while()循环的区别在于:while()循环是先判断再执行,而do{} while是先执行再判断
  6. 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循环允许同时出现多个初始化语句,但是只能有一个声明语句,因此需要在初始化表达式中声明多个线路,这些变量应该具有相同的类型
  7. continue:跳过当前的判断不往下执行并返回循环执行循环
  8. break:跳出当前循环
  9. return:跳出方法

函数

  1. 随机数

(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);
  1. 毫秒数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)+"毫秒");
  1. 数值交换法
  2. 计算次方math.pow(10,i)

数组

数组的定义:相同数据元素类型的集合,它是一种数据类型(引用数据类型)

  1. 数组的初始化:
    int数组中有三个元素,分别默认初始化为0,0,0
    int[] arr = new int[3];//基本类型都在栈中存放
    int[] arr2={1,4,7};
    int[] arr3= new ine[] {1,2,3};
  2. 先声明后初始化
    int[] arr4;
    arr4 = new int[]{1,4,6};
  3. 数组的访问
    (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+"个质数");
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值