2021-05-01

  1. 1.整数类型:

  2.      byte

  3.     在内存中占1个字节,表示范围:-2的7次 ~ 2的7次-1 

  4. short

  5.     内存中占2个字节,表示范围:-2的5次 ~ 2的15次-1

  6. int(推荐使用 int 类型)

  7.     内存中占4个字节,表示范围:-2的31次 ~ 2的31-1

  8. long

  9.     内存中占8个字节,表示范围是:-2的63次 ~ 2的63次-1

  10.     注意:

  11.         在Java程序中直接写出的整数数据叫做 常量 

  12.         默认为int

  13.         若想表达更大的直接量,则在直接量的后面加上L

  14.             例如:

  15.                 int  num = 25025050L ;

  16. 整数类型的笔试考点

  17.     int a1 = 25;

  18.     byte b1 = a1; //不可以这样自复制,int 的字节数大于byte 的字节数,从大转到小可能内存精度会溢出。

  19.         解决方案

  20.             转换类型

  21.             int a1 = 25;

  22.             byte b1 = (byte)a1; //表示从int类型转换到byte类型。

  23.  

  24. 2.浮点类型

  25.     功能:

  26.         用于描述小数数据的类型:float 和 double ,小数数据叫做小数常量,小数默认位 double 类型。

  27.     float

  28.         内存占4个字节,叫做单精度浮点数,可表示7位有效数字。

  29.         范围:-3.403E38 ~ 3.403E38。(表示-3.403*10的38次方)

  30.         float编程使用:

  31.             float f1 = 3.1415926F; //  如果小数最后一位不加 F 则默认位 double类型

  32.             System.out.println(f1); // 3.1415925 这是因为单精度有效位数只有7位,所以结果会把最后以为减一。

  33.             

  34.     double(推荐使用)

  35.         内存占8个字节,叫双精度浮点数,可表示15位有效数字。

  36.         范围:-1.798E308 ~ 1.798E308。(-1.798*10308次方)

  37.     考点笔试

  38.         打印一个两个浮点数之和

  39.             System.out.println(0.1+0.2);  //  0.3000000004 出现这种结果是因为小数默认为double类型,所以这两个小数必须加 F

  40.             解决方案:System.out.println(0.1F+0.2F); // 加F结果才会现实中的 0.1+0.2 = 0.3,但运算时还是会出现误差。

  41.  

  42. 3.布尔类型

  43.     功能:

  44.         用于描述真假信息的类型,内存空间所占大小没有明确规定,可认为时1个字节。

  45.     boolean

  46.         数值只有两个值:

  47.             tyue 和 false

  48.             

  49. 4.基本数据类型之间的转换

  50.     自动类型转换

  51.         从小类型到大类型之间的转换。

  52.         byte<short/char<int<long<float<double

  53.     强制类型转换

  54.         从大类型到小类型之间的转换。

  55.         格式

  56.             目标类型 变量名 = (目标类型) 要转换的源类型变量名;

  57.                 注意:

  58.                     强转有风险,操作需谨慎!

  59.     

  60. 5.算术运算符

  61.     + 表示 加法

  62.     - 表示 减法

  63.     * 表示 乘法

  64.     / 表示 除法

  65.     % 表示 取余数

  66.     注意事项:

  67.         当两个整数相除时,结果值保留整数部分,丢弃小数部分。

  68.             例如:a = 2 ,b = 5,System.out.println(5/2); //数学里等于:2.5 ,结果等于:2

  69.         0 不能作为除数。

  70.         希望保留小数部分

  71.             方案一

  72.                 使用强制转换将其中一个操作数转为double类型运算即可。

  73.                 int dOne = 5;

  74.                 int dTwo = 2;

  75.                 System.out.println("结果:" + (double)dOne/(double)dTwo); // 2.5

  76.                 System.out.println("结果:" + dOne/(double)dTwo)   // 2.5

  77.             方案二(推荐使用)

  78.                 让其中一个操作数乘以1.0即可。

  79.                 System.out.println("结果:"+5*1.0/2); // 2.5

  80.  
  81.  
  82. 6.字符串连接运算符

  83.     + 

  84.         功能:

  85.             可以实现字符串的连接。同时可以实现字符串与其他数据类型"相连"。

  86.         区分:只要 + 号两边的操作数中有一个操作数是字符串类型,则该 + 就被当作来连接符来用,否则就是 + 加法运算符。

  87.             例如:

  88.              //8

  89.                     System.out.println(aHour+minuts+miao);

  90.                     //116

  91.                     System.out.println(aHour+""+minuts+miao);

  92.                     //116

  93.                     System.out.println(""+aHour+minuts+miao);

  94.                     //26

  95.                     System.out.println(aHour+minuts+""+miao);

  96.                     //8

  97.                     System.out.println(aHour+minuts+miao+"");

 

  1. 7.关系/比较运算符

  2.     >

  3.         是否大于

  4.     >=

  5.         是否大于等于

  6.     <

  7.         是否小于

  8.     <=

  9.         是否小于等于

  10.     ==

  11.         是否等于运算符

  12.     !=

  13.         是否不等于运算符

  14. 8.自增减运算符

  15.     ++

  16.         自增

  17.         功能:

  18.             用于使得当前变量自身的数值加1。

  19.     --

  20.         自减

  21.         功能:

  22.             用于使得当前变量自身的数值减1。

  23.         例如:

  24.             

  25.               // 声明变量

  26.                     int a = 10;

  27.                     System.out.println("a = "+ a );

  28.                     System.out.println("-------------------------------------");

  29.                     // 实现自增自减

  30.                     a++;

  31.                     System.out.println("a = "+ a );

  32.                     ++a;

  33.                     System.out.println("a = "+ a );

  34.                     System.out.println("-------------------------------------");

  35.                     a--;

  36.                     System.out.println("a = "+ a );

  37.                     --a;

  38.                     System.out.println("a = "+ a );

  39.     前后加加的区别

  40.         a++

  41.             后加加

  42.                 表示先让变量 a 的数值作为整个表达式最终结果,然后再让 a 变量自身的数值加1。

  43.                 例如:

  44.                      System.out.println(a++); // 10

  45.                      System.out.println(a);  // 然后再加 11

  46.         ++a

  47.             前加加

  48.                 表示先让变量自身的数值加1,然后再让变量的数值作为整个表达式的结果。

  49.                 例如:

  50.                     

  51.                     System.out.println(a++); // 12

  52.                      System.out.println(a);     // 12 

  53.     自增减运算笔试考点

  54.         

  55.                 int b = a++;

  56.                 System.out.println(b); // 12

  57.                 System.out.println(a); // 13

  58.                 int bo = ++a;

  59.                 System.out.println(bo);// 14

  60.                 System.out.println(a); // 14

  61.                 System.out.println(a++ + ++a); // 30

  62.                 System.out.println(a); //16

  63.         注意:

  64.             只能用于变量,常熟不可以!

  65. 10.逻辑运算符

  66.     && 

  67.         逻辑与,相当于 "并且" ,全真为真,一假全为假。

  68.     ||

  69.         逻辑或,相当于 "或者",一真为真,全假才为假 。

  70.     !

  71.         逻辑非,相当于 "取反",真的为假,假的为真。

  72.     功能:

  73.         主要用于连接多个关系运算符作为最终的表达式,用于实现多条件的连接。

  74.         例如:

  75.             

  76.              if(num >=oneHundued && num <= nientyHundued){

  77.                         System.out.println("显示输出的是三位正整数: "+ num);

  78.                     }

  79.     注意:

  80.         逻辑运算符的操作数均为boolean表达式。

  81. 11.条件/三目运算符

  82.     格式:

  83.         条件表达式?表达式1:表达式2

  84.         例如:

  85.             System.out.println((num >=oneHundued && num <= nientyHundued)? "是三位数":"不是三位数"); // 结果: 是三位数

  86.     功能:

  87.         判断条件是否成立,若成立则执行表达式1,否则执行表达式2。

  88.     

  89. 12.赋值运算符(重点)

  90.     =

  91.         赋值运算符

  92.         功能:

  93.             用于将 = 右边的数据赋值给 = 左边的变量,覆盖变量原来的数值。

  94.         注意:

  95.             赋值表达式本身也有值,其本身之值即为所赋之值。

  96.     复合赋值运算符:

  97.         +=

  98.             例如:

  99.                 

  100.                 i1 = i1 + 5; // 简化写法 (推荐初学者使用)

  101.                 System.out.println(i1);

  102.                 i1 += 4;

  103.                 System.out.println(i1);

  104.         -=

  105.         *=

  106.         /=

  107.         %=

  108.     赋值运算符的(笔试考点1)

  109.         byte b1 = 10;

  110.         System.out.println(b1);

  111.         b1 = b1+2;              // 错误写法:byte + int 还是int

  112.         b1 = b1 + (byte)2;  //  错误写法: byte + byte  还是int 主要是因为编译器的优化导致。

  113.         解决方案:

  114.             使用强制类型转换

  115.             byte b1 = 10;

  116.             System.out.println(b1);

  117.             b1 = (byte)(b1+2);

  118.             System.out.println(b1);  // 12

  119.     笔试考点2

  120.         int a =45;

  121.         a == 2 ; // 表示判断两个数是否相等。(不推荐使用此写法)

  122.         2 == a ; // 表示2和a两个数是否相等。(在写法中推荐使用此写法)

  123.         为什么要这样写:

  124.             主要是因为怕写成类似这样的 : a = 2 ; //少写了一个等号。不小心就写成了赋值了。

  125.             

  126. 13.移位运算符(了解即可)

  127.     <<

  128.         左移

  129.         功能:

  130.             用于将数据的二进制位先左移动,右边使用0补充。

  131.             提示:

  132.                 当整数向左移时,相当于当前整数的数值*2倍。

  133.             例如:

  134.                 

  135.                  // 1.声明变量

  136.                         byte b1 = 13;

  137.                         System.out.println(b1);

  138.                         System.out.println("------------------");

  139.                         //2. 移位运算符的使用

  140.                         System.out.println(b1<<1);  // 左移1位:13*2

  141.                         System.out.println(b1<<2); // 相当于13*4=52

  142.     >>

  143.         右移

  144.         功能:

  145.             用于将数据的二进制位向右移动,左边使用符号部位。

  146.         提示:

  147.             当整数向右移时,相当于当前整数的数值/2倍。

  148.             例如:

  149.                  byte b1 = 13;

  150.                 

  151.                 System.out.println(b1>>1); // 相当于:13/2=6

  152.                 System.out.println(b1>>2); // 相当于: 13/4=3

  153.     >>>

  154.         无符号右移

  155.         功能:

  156.             用于将数据的二进制位向右移动,左边使用0补充。

  157.         提示:

  158.             无符号右移,对于非负数来说,无符号右移和右移的效果一致。

  159.             例如:

  160.             

  161.             System.out.println(b1>>>1);   // 6

  162.             System.out.println(b1>>>2);  //  3

 

  1. 14.位运算符(了解即可)

  2.     &

  3.         按位异或

  4.         功能:

  5.             按照二进制位进行与运算 

  6.         规律:

  7.             同1位1,一0为0

  8.     |

  9.         按位或

  10.         功能:

  11.             按照二进制进行或运算

  12.         规律:

  13.             一1为1,同 0 为 0

  14.     ~ 

  15.         按位取反

  16.         功能:

  17.             按照二进制进行取反

  18.         规律:

  19.             1为0,0为1

  20.     ^

  21.         按位异或

  22.         功能:

  23.             按照二进制进行异或运算

  24.         规律:

  25.             同0为0,不同为1

  26.     

  27. 15.运算符的优先级

  28.     ()的优先级极高。

  29.     = 的优先级极低。

  30.     若无法确认优先级,则使用()来确保即可。

  31.  
  32. 16.分支结构的概念

  33.     何时使用:

  34.         但需要进行条件判断并做出选择时,使用分支结构。

  35.         if分支结构

  36.             格式:

  37.                 if(条件表达式){

  38.                 语句块;

  39.                 }

  40.             规律:

  41.                 判断条件表达式是否成立

  42.                     若成立,则执行语句块;

  43.                     若不成立,则执行跳过语句块;

  44.  
  45.     if else 分支结构

  46.         格式

  47.             if(条件表达式){

  48.             语句块1;

  49.             }else{

  50.             语句块2;

  51.             }

  52.         规律:

  53.             判断条件表达式是否成立

  54.                 若成立,则执行语句块1;

  55.                 若不成立,则执行语句块2;

  56.     if else if else 分支结构

  57.         格式

  58.             if(条件表达式1){

  59.             语句块1;

  60.             }

  61.             else if(条件表达式2){

  62.             语句块2;

  63.             }else {

  64.             语句块n;

  65.             }

  66.         规律:

  67.             判断表达式1是否成立

  68.                 若成立,则执行语句块1;

  69.                 若不成立,则判断条件表达式2是否成立

  70.                 若不成立,则执行语句块2;

  71.                 热不成立,则执行语句块n;

 

  1. 17.switchcase分支结构的概念

  2.     格式:

  3.         switch(变量/表达式){

  4.         case 字面值1:语句1;break;

  5.         case 字面值2:语句2;break;

  6.         }

  7.         ...

  8.         default:语句块n;

  9.         }

  10.     规律:

  11.         计算变量/表达式的数值 => 判断是否匹配字面值1

  12.             若匹配,则执行语句块1 => 执行break跳出当前结构

  13.             若不匹配,则判断是否匹配字面值2

  14.                 若匹配,则执行语句块2 => 执行break跳出当前结构

  15.                 若不匹配,则执行语句块n

  16.     switchcase分支结构实现等级判断

  17.  
  18. 18.循环结构的概念

  19.     何时要用:

  20.         再Java程序中若希望重复执行一段代码时,就需要使用循环结构。

  21.         for循环

  22.             格式:

  23.                 for(初识化表达式; 条件表达式; 修改初始值表达式){

  24.                 循环体;

  25.                 }

  26.     规律:

  27.         执行初始化表达式 => 判断条件表达式是否成立

  28.             成立则执行循环体 =>修改初始值表达式 => 判断条件表达式是否成立

  29.             若不成立,则循环结束

  30.     continue关键字

  31.         功能:

  32.             用于结束本次循环而开始下一次循环。

  33.     break关键字

  34.         功能:

  35.             退出当前语句块

  36.             在循环体中用于退出循环

  37.             break关键字跳出多层循环

  38.                 如果要退出外层循环体,需要使用标号的方式

  39.                     outer : for(...){

  40.                         for(...){

  41.                             break outer;

  42.                         }

  43.                     }

  44.     for(;;)

  45.         这种没有循环条件的循环叫做 无限循环,称 "死循环"。

  46.     双重for循环的格式:

  47.         功能:

  48.             用于打印多行多列。

  49.         for(初识化表达式1;条件表达式2;修改初始值表达式3){

  50.             for(初识化表达式4;条件表达式5;修改初识值表达式6){

  51.                 循环体;

  52.             }

  53.         }

  54. 19.while循环

  55.     格式:

  56.         while(条件表达式){

  57.             循环体;

  58.         }

  59.     规律:

  60.         判断条件表达式是否成立

  61.             热成立,则执行循环体,=>判断条件表达式是否成立,若不成立,则循环体结束。

  62.         注意:

  63.             在()或{}中声明的变量叫 块变量,作用范围是从声明开始一直到语句块结束。

  64.     while循环和for循环比较

  65.         完全可以互换,当然推荐使用for循环。

  66.     区别:

  67.         while循环更适合于明确循环条件但不明确循环次数的场合中。

  68.         for循环更适合于明确循环次数或范围的场景中。

  69.         while(true)等价于for(;;)都表示无限循环。

  70.     do while循环(熟悉即可)

  71.         do{

  72.         循环体;

  73.         }while(条件表达式); 

  74.     规律:

  75.         执行循环体 => 判断条件表达式是否成立

  76.             若成立,则执行循环体 =>判断条件表达式是否成立

  77.             若不成立,则循环结束

  78.     do while循环和 while 循环的区别:

  79.         do while 循环主要用于至少执行一次循环体的场景中。(先执行,在判断)

  80.     循环笔记考点:

  81.         十动然拒

  82.             int i = 1;

  83.             while (i<=999) ; {

  84.             System.out.println("I LOVE YOU!");

  85.             i++;

  86.             }

  87.             此程序相当于:

  88.             while(i<=999){

  89.                 ;  // 每次执行到这个分号就啥也不干,一直死循环,不执行下面的输出语句。

  90.             }

  91.             {

  92.                 System.out.println("I LOVE YOU!");

  93.                 i++;

  94.             }

  95. 20.数组以及应用

  96.     1.何时使用

  97.         当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数组即可,一维数组本质上就是在内存空间中申请一段连续的存储单元。

  98.         注意:

  99.             数组是相同数据类型的多个元素的容器,元素按线性顺序排列,在Java语言中体是引用数据类型。

  100.     2.一维数组的声明方式:

  101.         格式:

  102.             数据类型[] 数组名称 = new 数据类型[数组长度]; (动态方式声明一维数组)

  103.             如何获取数组长度:

  104.                 调用数组的length属性可以获取数组的长度:

  105.                     例如:数组名 . length ;// 获取数组长度

  106.         下标:

  107.             可以通过下标的方式访问数组中的每一个元素。

  108.                 需要注意的是:数组的下标从0开始,对于长度为n的数组,下标的范围是 长度-1。

  109.         3.一维数组的初始化

  110.             静态初始化:

  111.                 格式:

  112.                     数据类型[] 数组名称 = {初始值1,初识值2,...}

  113.                         // 声明数组的同时就对数组进行初始化

  114.                             int[] arrTwo = {1, 2, 3, 4, 5, 6, 7, 8};   

  115.                         // 特殊的写法, 依然是静态初始化的写法

  116.                                 boolean[] arr4 = new boolean[]{true,false,true,false,true};

  117.             基本类型的数组(数据类型为基本类型) 创建后,其元素的初始值:byte,short,char,int,long 为0;

  118.             float,double 为0.0

  119.             boolen 为 false.

  120.                 例如:

  121.                     

  122.                      double[] dbs = new double[8];

  123.                             // 3.打印数组中的每一个数值

  124.                             for (int i = 0; i < dbs.length; i++) {

  125.                                 System.out.println(dbs[i]);     // 0.0,0.0 .....0.0

  126.                             }

  127.         4.内存结构之栈区

  128.             栈区:

  129.                 功能:

  130.                     用于存放程序运行过程中所有的局部变量。

  131.                     一个运行的Java程序从开始到结束会有多次变量的声明。

  132.             堆区:

  133.                 功能:

  134.                     JVM会在其内存空间中开辟一个为"堆"的存储空间

  135.                     用于存储使用 new 关键字创建的数组和对象。

  136.     5.数组的优缺点:

  137.         优点:

  138.             可以直接通过下标(或索引)的方式访问指定位置的元素,速度很快。

  139.         缺点:

  140.             数组要求所有元素的类型相同。

  141.             数组要求内存空间连续,并且长度一旦确定就不能修改。(优缺点共存)

  142.             增加和删除元素时,可能移动大量元素,效率低。

  143.         使用到的超前知识:

  144.             java.base

  145.                 java.lang

  146.                     类摘要:Class System  System类包含几个有用的类字段和方法。 

  147.                         方法摘要: 

  148.                             功能:

  149.                                 将一个数组的数组元素拷贝到另一个数组里。

  150.                             public static void arraycopy​(Object  src,  int  srcPos,  Object  dest , int  destPos , int length );

  151.                                 

  152.                                 src - 源数组。 

  153.                                 srcPos - 源数组中的起始位置。 

  154.                                 dest - 目标数组。 

  155.                                 destPos - 目标数据中的起始位置。 

  156.                                 length - 要复制的数组元素的数量。

  157.                                 例如:

  158.                                     System.arraycopy(arr1,1,arr2,0,3);

  159.     6.一维数组之间拷贝的笔试考点:

  160.         arr2 = arr1 ;

  161.         // 1. 表示将变量 arr1 的数值赋值变量 arr2 ,覆盖变量arr2中原来的数值。

  162.         // 2. 数组名 arr1 的内存中存放的是数据在堆去中的内存地址信息,赋值后让 arr2 变量中存放了arr1 所指向堆区的内存地址

  163.         // 3. 也就是让 arr2 和 arr1 指向了同一块堆区空间,在本质上就是改变指向而已。

  164.     7.数组工具类的概念

  165.         java.util.Arrays类

  166.             功能:

  167.                 可以实现对数组中元素的遍历,查找,排序等操作。

  168.         常用方法如下:

  169.             1.static String toString(int[] a) : 输出数组中的内容。

  170.             2.static void fill(int[] a,int val) : 将参数指定元素赋值给数组中所有元素。

  171.             3.static boolean equls(boolean[] a,boolean a2 ) : 判断两个数组元素和次序是否相同。

  172.             4.static void sort(int[] a) :对数组中的元素进行从小到大排序。

  173.             5.static int binarySearch(int [] a,int key) : 从数组中查找参数指定元素所在的位置。

  174.     8. 二维数组的概念

  175.         本质上就是由多个一维数组摞在一起组成的数组,二维数组中的每个元素都是一维数组,而一维数组中的每个元素才是数据内容。

  176.         二维数组的声明和使用

  177.             格式:

  178.                 数据类型[][] 数组名称 = new 数据类型[行数][列数];

  179.         二维数组的初始化方式

  180.             格式:

  181.                 数据类型[][] 数组名称 = {{元素1,元素2,...}...};

  182.         考点:

  183.             int[][] arr3 = new int[3][];

  184.             arr3[0] = new int[3];

  185.             arr3[1] = new int[4];

  186.             arr3[2] = new int[5];

  187.  

  188.  

  189.  

  190.  

  191.  

  192.  

  193.  

  194.  

  195.  

  196.  

  197.  

  198.  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值