首页 > 编程知识 正文

java基础知识点,0基础java

时间:2023-05-05 20:10:29 阅读:232402 作者:1846

提示:本文章更新完毕 ,后面的内容已经更新一部分,请转到我博客得其他文章进行阅读。

文章目录 前言一、Java基础1.1 什么是变量:1.2 类型的分类:1.3 类型的大小:1.4 类型的转换与强制类型转换: 二、运算符1、算术运算符2、赋值运算符3、关系运算符4、逻辑运算符5、字符串连接运算符6、三目运算符 三、流程控制1、接收用户输入2、常用for、while循环3、if判断4、break和continue跳出判断 四、数组1、常见数组创建格式2、数组练习2、多维数组(了解即可) 总结


前言

提示:在这里可以学到Java基础内容。


一、Java基础 1.1 什么是变量:

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"

1.2 类型的分类: 1、基本数据类型变量2、引用数据类型变量

1.3 类型的大小: 1.int 4个字节 范围:-2147 483 648 ~ 2 147 483647 (大约20亿) 默认值 02.short 2个字节 范围:-32 768 ~ 32 767 默认值 03.long 8个字节 范围:-9 223 372 036 854 775 808L ~ 9 223 默认值 04.byte 1个字节 范围:-128~127 默认值 05.float 4个字节 范围:-3.40292347E+38-3.40292347E+38 默认值 06.double 8个字节 范围:-1.79769313486231570E+308-1.79769313486231570E+308 7.boolean 1个字节 范围: true或false 默认值:false8.char 2个字节 范围:‘ u0000 - uffff' 默认值:u0000

注意: 在面试中常问 byte字节的范围 大家可以记住 byte 范围 :-128~127
byte(1字节) < short(2字节) < int(4字节) < long(8个字节)
double(8字节) > float(4字节) >char(2字节) >boolean(1字节)

1.4 类型的转换与强制类型转换: boolean不能转换成任何类型自动类型转换:自动将容量小的类型转为容量大的类型(容量大小参照上面)如果容量大的类型转换为容量小的类型,则需要进行强制转换
代码如下(示例): int c=200; //强制类型转换 可能会出现精度丢失 byte d= (byte) c; System.out.println("强制类型转换之前c为===>"+c); System.out.println("强制转换类型d为===>"+d);

我们看到最终强制类型转换后,值发生了变化。

二、运算符 1、算术运算符

2、赋值运算符

3、关系运算符

4、逻辑运算符

5、字符串连接运算符

代码如下(示例):

String str="He";String str1="llo";System.out.println(str+str1);结果: “Hello”String str="He";int num=666;System.out.println(str+num);结果: “He666”

注意:当类型不一致时,String类型 + int类型=String值连接int值,而不是相加

6、三目运算符

语法:布尔表达式(boolean) ? 表达式1 : 表达式2
如果布尔表达式为true执行 表达式1
如果布尔表达式为false执行 表达式2
比如: 6>5 ? “大于” : “小于” 结果为 大于
代码如下(示例):

布尔表达式(boolean) ? 表达式1 : 表达式2System.out.println(6>7?true:false); //结果为 false 三、流程控制 1、接收用户输入 //next (接收一行):当输入遇到空格时,会认为是结束当前输入参数命令,空格后面的输入不再输出 包括空格 System.out.println("请输入next接收的参数:"); Scanner scanner = new Scanner(System.in); String next = scanner.next(); System.out.println(next); //nextLine(接收一行):遇到空格时,后面的内容可以照常输出 可以接收空格后的参数 System.out.println("请输入nextLine接收的参数:"); String nextLine = scanner.nextLine(); System.out.println(nextLine); 2、常用for、while循环 for(初始化; 布尔表达式; 更新) { //代码语句}//打印图形for (int i=0;i<10;i++){ if(i%2!=0){ for (int j = 0; j<i ; j++) { System.out.print("*"); } } System.out.println(); }while( 布尔表达式 ) { //循环内容}while(10>6){ System.out.println("while循环执行");} 3、if判断 if(布尔表达式){ //如果布尔表达式为true将执行的语句}else{ //如果布尔表达式为false执行的语句} 4、break和continue跳出判断

1. 使用了 break跳出当前循环

for (int i = 0; i <10 ; i++) { System.out.println("我是for循环执行了===>"+i+"次"); if(i==5){ break; } }

执行结果: 当使用了break,则后面的语句就不在执行

2. 使用了 continue跳出循环

for (int i = 0; i <10 ; i++) { System.out.println("我是for循环执行了===>"+i+"次"); if(i==5){ continue; } }

执行结果: 当使用了continue,则后面的语句继续执行,只是跳过当前循环

四、数组 1、常见数组创建格式 //常用数组创建格式 int[] arr={10,20,30}; //常用数组创建格式 创建10个空间 int[] arr2=new int[10];//创建了10个空间没有赋值,默认值为0 2、数组练习

2.1 数组应用小练习
提示:查找数组中的最大最小值

//判断数组中最大值 int[] arr={10,30,4,999,6,88,9999,6,9,20,66,666}; int max=arr[0]; for (int i = 0; i <arr.length ; i++) { //max的值小于数组中遍历的i值 替换 if(max < arr[i]){//当数组中遍历的i值大于了max值 max=arr[i];//把当前max最大值替换掉 } } System.out.println(max); System.out.println("=========="); //判断数组中最小值 int[] arr2={10,30,4,999,-1,-999,6,88,9999,6,9,20,66,666}; int min=arr2[0]; for (int i = 0; i <arr2.length ; i++) { //max的值小于数组中遍历的i值 替换 if(min > arr2[i]){ min=arr2[i]; } } System.out.println(min); }

2.2 数组应用小练习
提示:(算法)冒泡排序
思想:将数组中索引为 0 的值与索引 0+1 的进行比较,此时就成了数组中第一个值和第二个值进行比较,如果索引为0的值 大于 索引为0+1的值,那么用一个临时变量temp来进行值的互换,然后内层for循环 i++ 让索引为1的值(也就是索引 0 和 1 的的最大值放到了 索引 1 也就是数组中的第二个值 )与数组中索引为2的值进行比较, 最终完成冒泡排序

//冒泡排序 int[] arr={3,60,4,50,9,55,66,4,100,2}; //索引是从0开始,所以循环条件为 arr.length-1 =9 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];//temp为临时变量,来进行互换值 arr[j]=arr[j+1]; arr[j+1]=temp; } } } for (int i = 0; i <arr.length ; i++) { System.out.println(arr[i]); }

2.3 数组应用小练习
提示:(算法)二分查找/折半查找
注意:使用二分查找必须是有序的数组,否则二分查找将无意义
理解:每次查找排除一半的数,折半查找效率较高,数组越大,效率越大
我们需要定义一个最小索引值、最大索引值和center中间索引值,min为当前数组中的0索引为最小值,max为当前数组的长度-1(这里为什么是数组长度-1我就不多说了,不理解的看往上看) ,center为(min+max)/2得到中间索引值,如果中间值 大于num(要查找的数),那么说明center右侧的数都不存在num这个数,此将max改成 center-1 也就是把最大值max设为中间值的右侧。如果center值<num,那么说明center左边的值都小于num(要查找的数),我们将min改成center+1让最小值成为center右侧的第一个值,还有一种情况当min值大于max值,说明没找到,如果这三个条件都不满足,那么就是找到了num值。

//二分查找 //使用二分查找算法之前必须先让数据中的数据从小到大排序,否则二分查找将无意义 int[] arr={10,20,30,40,50,60,70,80,90}; int num=910; //最小数值下标 int min=0; //最大数值下标 int max=arr.length-1; //中间数值下标 int center=(min+max)/2; while (true){ if(arr[center] > num) { max = center - 1; center = (min + max) / 2; }else if(arr[center] < num){ min=center+1; center=(min+max)/2; }else if(arr[center] == num){ System.out.println("找到了===>"+num+"索引为===>"+center); break; } if(min>max){ center=-1; System.out.println("位置"+center); break; } }

2.4 数组应用小练习
**提示:(力扣算法)两数之和

思想:我们通过双指针来遍历数组进行查找是否两数相加等于target**

Scanner scanner = new Scanner(System.in); System.out.println("输入数组中要查找的数"); //要查找的target数 int target = scanner.nextInt(); boolean flag=false; int[] arr=new int[]{1,2,7,8,9}; for (int i = 0; i <arr.length ; i++) { for (int j = 1; j <arr.length; j++) { if(arr[i]+arr[j] == target){ System.out.println("成功找到索引下标===>"+i+"和"+j); flag=true; } } } if(flag==false){//说明没有找到目标target System.out.println("没有找到===>"+target); }

2.5 数组应用小练习
提示:(力扣算法)回文数

Scanner scanner = new Scanner(System.in); System.out.println("请输入要判断的回文数"); int x = scanner.nextInt(); String num=x+""; String dnum = new StringBuffer(num).reverse().toString(); System.out.println(num.equals(dnum)); 2、多维数组(了解即可)

一维数组中每一个空间存储的是一个值
二维数组中每一个空间存储的是一个新的数组

//int[一维数组的大小][二维数组的大小] //int[][] 二维数组名称=new int[一维数组长度][二维数组长度]; int[][] array=new int[2][2]; //给二维数组中赋值 array[0][0]=1; array[0][1]=2; array[0][2]=3;
总结

提示:博客将持续更新,后面的内容会更新到新的文章中!!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。