Java那些容易忽略的心动细节

       

         该篇主要是针对在Java基础的学习过程中容易忽略,或者容易出错的知识点进行了一个大致的汇总,同时也总结了一些安装时会出现的问题,比如在IDE环境中无法创建软件包,或者java类这种少见的问题,虽然内容简短,但是字字句句都非常地管用,例如标识符定义规则,常见命名约定,对于以后学习Java方法,类时便有一个好的区分,在数据类型大小比较及应用方面,为何有些数据可以自动转换而有些却不行?容易被忽略地三元运算符switch的用法在代码的简洁度上起了很大的作用, 循环结构的区分和适用条件,数组等等.希望通过我这篇文章,大家都能收获满满,感谢大家的来访,如有不当之处,感谢你的留言与评论.

目录

java之父:詹姆斯.高斯林

安装IDEA后会遇到的某些奇葩问题

 把IDEA弄成接地气的汉化:

在IDEA环境中无法创建软件包,或者java类

标识符定义规则

常见命名约定

数据类型大小比较及应用方面

 数据类型的区分

 数据类型应用方面

数据中的自动类型转换和强制类型转换的区别

常见的底层符号对应的ASCII码数值

算术运算的注意事项

赋值运算中 sum+=num 和 sum = sum + num 的区别 

自增自减运算符注意事项

 关系运算符返回的值都为boolean类型:  true or  false

短路逻辑运算符 (||,&&)与逻辑运算符的区别

容易忽略的三元运算符

if语句的两种用法

switch的用法

 if-else语句和switch的区别应用

循环结构

        第一种:for循环

        第二种:while循环

        第三种:do while 循环               

无限循环

数组

Random的基本用法



java之父:詹姆斯.高斯林

安装IDEA后会遇到的某些奇葩问题

 把IDEA弄成接地气汉化:

首先 Ctrl+Alt+S会出现到插件界面,

然后按照以下步骤进行对应操作(英文和汉语一一对应即可),

最后会出现对话框,点击Restar。

IDEA环境中无法创建软件包,或者java类

(关键在于点亮生成蓝色框)

操作:

 

改变

标识符定义规则

  1. 由数字,字母,下划线(_)和美元符($)组成
  2. 不能以数字开头
  3. 不能是关键字
  4. 区分大小写

常见命名约定

小驼峰命名法 : 方法,变量

(1) 标识符是一个单词的时候,首字母小写  ---->name

(2) 标识符是由多个单词组成的时候,,第一个单词首字母小写,其它单词首字母大写(firstName)

大驼峰命名法 : 类

(1) 标识符是一个单词的时候,首字母大写  ---->Student

(2)标识符是由多个单词组成的时候,每个单词首字母大写 ---> GoodStudents

数据类型大小比较及应用方面

 数据类型的区分

 数据类型应用方面

        java的数据类型:整数默认为int;浮点数默认为double。
        如果 long  l = 10000000000,输出会显示错误,这是由于该数据类型超出了实际为int类型的数据范围(long类型比int类型更高一级),需要在数值后面添加一个L,表明其为long类型,才可以正常输出,即 long = 10000000000L。

float同理可得.


        //定义long类型的变量,数据后面要加上 L
        long l = 100000000000L;
        System.out.println(l);

        //定义float类型的变量,数据后面要加上 F
        float f = 13.14F;
        System.out.println(f);

 相同的赋值 但是对应的数据类型不一样,输出的值就不一样,请看下面的代码块.

        int a = 10;
        System.out.println(a);     // 10
        double b = 10;
        System.out.println(b);    // 10.0

数据中的自动类型转换和强制类型转换的区别

首先需要了解一个知识点 数据类型的等级按照下面的顺序依次递增:

(byte,short,char  <  int <long < float < double)

自动转换:低等级向高等级转换

强制转换:高等级向低等级转换

//自动转换  -> byte,short,char < int <long < float < double
int b = 'a';
System.out.println(b);    
// 输出:97:把char类型转换成int类型,输出其对应的(ASCII码数值)            
// notice: char 转换成的数值,都是对应符号底层的ASCII码数值。



//强制转换
double c = 88.88;
int d = (int)c;
System.out.println(d);     
// 输出:88     ,强制转换 可能会使数值损失精度

常见的底层符号对应的ASCII码数值

"A" --> 65                A - Z  连续

"a" -->97                 a - z  连续

'"0" -->48                0-9   连续

算术运算的注意事项

/ 和%的区别:两个数据做除法,/ 取结果的商,%取结果的余数。

注意:整数操作的结果只能得到整数,如果想得到小数,必须有浮点数参与运算。

 // 区分 / 和 %
int num = 13;
int a = num / 6;                // 2
double b = num / 6.0;           // 2.1666666666666665 接近数学里面的除法
int c = num % 6;                // 1
System.out.println(a +" "+b+" "+c);       

赋值运算中 sum+=num 和 sum = sum + num 的区别 

sum += num 中隐含了一个强制类型转换的过程

// 赋值运算的注意事项
        short s = 10;
//        s +=10;      pass  
//        s += 10 是等价于 s = (s的数据类型)(s + 10),而不是等价于 s = s + 1,

//        s = s + 10  这个操作就不行 电脑翻译成 short != short + int

        s = (short)(s + 10) ; // pass
        System.out.println(s);

自增自减运算符注意事项

 ++i : 先自身改变,再把改变后的自身赋值给变量。
 i++ : 先自身不变直接赋值给变量,然后自身再改变。

        int i = 10;
        int j = 10;
        int s = ++i;
        System.out.println(s +" "+i); //  输出 11  11

        int u = j++;
        System.out.println(u +" "+j); //  输出 10 11
        
        

 关系运算符返回的值都为boolean类型:  true or  false

        int i = 10;
        int j = 12;
        System.out.println(i<j); //  输出 true

 逻辑运算符 注意  ^ 异或运算符的结果:相同为false,相异为true

短路逻辑运算符 (||,&&)与逻辑运算符的区别

逻辑与 & ,无论左边真假,右边都要执行。

短路与 &&,如果左边为真,右边执行; 如果左边为假,右边不执行。

逻辑或 | ,无论左边真假,右边都要执行。

短路或 || ,如果左边为假右边执行;如果左边为真,右边不执行。

容易忽略的三元运算符

格式 : 关系表达式?表达式1:表达式2;

范例: a > b ? a : b;

解读: 计算机首先判断 关系表达式(a>b) 如果值为true,则返回 a ,如果值为 false,则返回b.

        int a = 100;
        int b = 80;

        boolean c= a-b>0 ? true : false;
        System.out.println(c);              // 输出true

if语句的两种用法

// 只有两个条件的时候 可以用此方法 (if .... else)
        int a = 100;
        int b = 20;
        if (a > b)System.out.println("a大于b");
        else System.out.println("b大于a");
// 三个及以上条件 可以用此方法(if ...else if ... else)
        int d = 100;
        int e = 20;
        if (d > e)System.out.println("d大于e");
        else if (d==e) System.out.println("d等于e");
        else System.out.println("d大于e");

switch的用法

通常适用于在多项条件里面进行选择得到最佳结果.

import java.util.Scanner;

public class One {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();

 // 新升级的switch
        // 原版,要额外注意在每个语句后面添加 break;
        
        switch (a) {
            case(1): System.out.println("run");break;
            case(2):  System.out.println("Swimming");break;
            case(3):  System.out.println("walk");break;
            default: System.out.println("play");break;
        }
        

        // 升级
        switch (a) {
            case 1 -> System.out.println("run");
            case 2 -> System.out.println("Swimming");
            case 3 -> System.out.println("walk");
            default -> System.out.println("play");
        }

 if-else语句和switch的区别应用

当表达式是数值,,可以选择 switch。

当表达式是一直运算的时候,即是式子时,用 if -else

循环结构

循环结构有三种:


        第一种:for循环

for(循环体语句 ;条件判断语句;条件控制语句){

               }

public class One {
    public static void main(String[] args) {
        

        for (int i = 0; i < 5; i++) {
            System.out.println(i);

        }

    }
}

#输出
0
1
2
3
4

        第二种:while循环

  while(条件判断语句){
                                循环体语句;
                                条件控制语句;  }

import java.util.Scanner;

public class One {
    public static void main(String[] args) {


        Scanner sc = new Scanner(System.in);
        System.out.println("请输入a的值");
        int a = sc.nextInt();

        while (a < 10){
            System.out.println("输出"+a);
            a++;

        }
    }
}

#输出
请输入a的值
5
输出5
输出6
输出7
输出8
输出9

        第三种:do while 循环               

do{
           循环体语句;
           条件控制语句;
                }while(条件判断语句) 

目前经常应用的为前两种。
前两种的不同使用方式:for循环适合于 有限次的循环,while适用于不明确的循环次数,所以对于循环使用要合理判断.

无限循环

# for的无限循环
 for(;;){
            System.out.println("我见乌托邦多妩媚");
        }

# while的无限循环

while (true){
            System.out.println("我见乌托邦多妩媚");

        }

数组

格式有两种

int [] arr = new int[]{1,2,3};
int [] arr1 = {1,2,3};

//注意,单纯的输出 arr/arr1将会得到,而不是数组这个大盒子里面的元素.

给数组赋值以后原数组值会变化

public class One {
    public static void main(String[] args) {

        int [] arr1 = {1,2,3};
        for (int j = 0; j < 3; j++) {
            System.out.print(arr1[j]);

        }
        System.out.println();

        //换行,区分print 和println,print不换行,println要换行

        arr1[0] = 5;
        for (int i = 0; i < 3; i++) {
            System.out.print(arr1[i]);

        }
    }
}


#输出
123
523

对于数组的索引也经常出现越界问题:

注意: 最小索引为0,最大索引为数组的长度减去1.

public class One {
    public static void main(String[] args) {

        int [] arr1 = {1,2,3};
        for (int j = 0; j < arr1.length; j++) {
            System.out.print(arr1[j]);

        }
        System.out.println();
        
        for (int i = 0; i <= arr1.length-1; i++) {
            System.out.print(arr1[i]);

        }
    }
}


#输出
123
123

Random的基本用法

通用格式为:

第一步导包:import java.util.Random;
第二步:引入Random sc = new Random();
第三步:确定值的数据类型和范围:num = sc.next数据类型(数据的范围0~多少)+(如果范围不够就在外面加上数字)

利用Random随机生成10个1到10 的数字存到数组里面.

arr[i] = sc.nextInt(10)+1; 
ps:由于sc.nextInt(10)的范围为0~9,而我们需要1~10的取值范围,因此需要在后面+1.
import java.util.Random;

public class One {
    public static void main(String[] args) {

        int [] arr = new int[10];
        Random sc = new Random();

        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt(10)+1;

        }

        for (int j = 0; j < arr.length; j++) {

            System.out.print(arr[j]+" ");
        }
    }
}

#输出
9 9 3 10 6 7 1 7 9 4

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值