2021最新Java基础篇(后续已更新到另一篇文章)

2021最新Java基础篇(后续已更新到另一篇文章)提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Java基础?1.1什么是变量:1.2类型的分类:1.3类型的大小:1.4类型的转换与强制类型转换:二、使用步骤1.引入库2.读入数据总结前言提示:在这里可以学到Java基础内容。一、Java基础?1.1什么是变量:变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为”变量”1.2类型的分类:1、基本数据类型变量2、引用数据类型变量

大家好,又见面了,我是你们的朋友全栈君。

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


前言

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


一、Java基础

1.1 什么是变量:

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

1.2 类型的分类:

1、基本数据类型变量
2、引用数据类型变量

在这里插入图片描述

1.3 类型的大小:

	1.int            4个字节      范围:-2147 483 648 ~ 2 147 483647 (大约20亿)        默认值 0
	2.short          2个字节      范围:-32 768 ~ 32 767							  默认值 0
	3.long           8个字节      范围:-9 223 372 036 854 775 808L ~ 9 223 		  默认值 0
	4.byte           1个字节      范围:-128~127 		                          	  默认值 0
	5.float          4个字节      范围:-3.40292347E+38-3.40292347E+38 		      默认值 0
	6.double         8个字节      范围:-1.79769313486231570E+308-1.79769313486231570E+308 	
	7.boolean        1个字节      范围: true或false 							      默认值:false
	8.char           2个字节      范围:‘ \u0000 - u\ffff'                          默认值:\u0000 

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

1.4 类型的转换与强制类型转换:

  1. boolean不能转换成任何类型
  2. 自动类型转换:自动将容量小的类型转为容量大的类型(容量大小参照上面)
  3. 如果容量大的类型转换为容量小的类型,则需要进行强制转换
    代码如下(示例):
 		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 : 表达式2
System.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;

总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156698.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 2018最新APP Android UI设计规范「建议收藏」

    2018最新APP Android UI设计规范「建议收藏」设计稿尺寸:从目前市场主流设备尺寸来看,我们要用1080x1920PX来做安卓设计稿尺寸。以1080x1920px作为设计稿标准尺寸的原由:从中间尺寸向上和向下适配的时候界面调整的幅度最小,最方便适配。大屏幕时代依然以小尺寸作为设计尺寸,会限制设计师的设计视角。用主流尺寸来做设计稿尺寸,极大的提高了视觉还原和其他机型适配。所以做安卓设计稿时请以1…

  • SAP常用BAPI函数「建议收藏」

    SAP常用BAPI函数「建议收藏」BAPI_ALE_MODEL_GETBAPI_BARCODE_SENDLISTBAPI_ANSWER_READMULTIPLEBAPI_APPCOMP_READMULTIPLEBAPI_PROCDIA_READMULTIPLEB…

  • 圆桌排序公式_大圆桌怎么坐

    圆桌排序公式_大圆桌怎么坐假设有来自 m 个不同单位的代表参加一次国际会议。每个单位的代表数分别为 ri(i=1,2,…,m)。会议餐厅共有 n 张餐桌,每张餐桌可容纳 ci(i=1,2,…,n) 个代表就餐。为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐。试设计一个算法,给出满足要求的代表就餐方案。输入格式第 1 行有 2 个正整数 m 和 n,m 表示单位数,n 表示餐桌数。第 2 行有 m 个正整数,分别表示每个单位的代表数 ri。第 3 行有 n 个正整数,分别表示每个餐桌的容量 ci。输

  • 如何控制DIV滚动条的位置?[通俗易懂]

    如何控制DIV滚动条的位置?[通俗易懂]document.all.DIVID.scrollTop=xxx 

  • 不同网段实现全网互通的方式_同一网段无法互通

    不同网段实现全网互通的方式_同一网段无法互通实现不同网段vlan互访【实验拓扑】【实验过程】一.二层设备依据拓扑创建vlan,实现同vlan互访。1.sw1创建vlan100、vlan200.2.将接口加入相应的vlan。验证:二、实现跨交换机相同vlan互访。1.sw1、sw2开启trunk,并允许vlan通过。创建vlan100、vlan200,并将接口加入对应的vlan。验证是否跨交换机相同vlan可以互访。三、配置单臂路由。实现不同vlan可以互访。1.配置子接口,充当vlan100

  • hbuilder安装使用教程_ghost使用教程图解

    hbuilder安装使用教程_ghost使用教程图解前段时间朋友让我帮忙打包一个IPA文件(使用HTML5开发的Web应用),了解到HBuilder这款H5开发神器。之前一直使用WebStorm开发H5,闲来无事也学习下HB

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号