01_标识符和关键字

  • java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符

    • 所有的标识符都应该以字母(a-z)美元符号$,下划线(_)开头

    • 首字符之后可以是字母,美元符号,下划线或数字的任意组合

    • 不能使用关键字作为变量名或方法名

    • 标识符是大小写区分的

    • 可以使用中文命名,但是一般不建议

02_数据类型

  • Java是强类型语言

    要求变量的使用严格符合规定,所有变量都必须先定义后才能使用

  • java的数据类型分为两大类

    • 基本类型(primitive type)

       String      //字符串    这个不是关键字,是一个类
       byte        //整数类型  -128—127
       short       //整数类型  -32768—32767
       int         //整数类型  常用
       long        //整数类型  要在这个类型后加L,long=100L
       float       //浮点类型  要在这个类型后加F,float=59.34L
       double      //浮点类型
       char        //字符类型  只能使用一个字符
       boolean     //布尔类型  值只有true(是)和false(否) 

       

    • 引用类型(reference type)

      引用类型有:类,接口,数组

  • String类型的内容无法使用==进行比较,可以使用变量名.equals()这个方法比较

03_数据类型扩展

  • 进制转换

    二进制0b 八进制0 十六进制0x

     int i=0b10;     //二进制
     int i1=010;     //八进制
     int i1=0x10;    //十六进制
     //上面的三种方法分别代表了三种进制的输出方式
  • 浮点数

     float f=0.1f;
     double d=0.1;
     System.out.println(f==d);

    最后输出的结果是false;

    由于浮点型存在舍入误差

    最好完全避免使用浮点数进行比较

  • 字符型

    所有的字符本质上还是数字

    在java中有Unicode表,可以在表中查询到

  • 转义字符

     \n      //换行
     \t      //空格
     String sc=new String"hello"
     String sb=new String"hello"
     Syste.out.println(sc==sb);

    打印的结果是false

    原因:

    字符串和数组的值在堆中存, 他本身在栈中储存着,new的意思是创建新的地址,它比较的是地址值

  • 布尔值扩展

     boolean flag=true;
     if(flag==true){}
     if(flag){}

    这两种方法都是一样的,在java中有表示

    Less is More! 代码有精简易读

04_类型转换

  • 由于java是强类型语言,所有进行有些运算时,是需要强制转换的

    • 强制类型转换 :(类型)变量名 高~低

    • 自动转换 低~到

1:不能对布尔类型进行转换

2:不能把对象类型转换为不相干的类型

3:在把高容量转换到低容量的时候,强制转换

4:转换的时候可能存在内存溢出,精度丢失的问题

5:操作比较大的时候,注意溢出问题

6:jdk7新特性,数字之间可以用下划线分割

 public static void main(String[] args){
     int money=10_0000_0000;
     int years=20;
     long tota1=money*(long)years;
 }

先把一个数转化为long类型

数据类型排序表:

         
byte short char int long float double

05_变量

变量就是可以变化的量!

java是一种强类型语言,每个变量都必须声明其类型。

java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

  • 注意:

    每个变量都有类型,类型可以是基本类型,也可以是引用类型

    变量名必须是合法的标识符

    变量声明是一条完整的语句,因此每一个声明都必须以分号结束

类变量:

 //加了一个static,从属于这个类
 static double a=18.1;

实例变量:

 public class a {
     String name="name";
     public static void main(String[] args) {
 ​
         a a=new a();
         System.out.println(a.name);
     }
 }

从属于对象,如果不自行初始化,就会用这个类型的默认值

整数型数据默认值是0;浮点型默认值是0.0;字符默认是null;布尔型默认是false

局部变量:

 //必须声明和初始化值,定义在方法中
 int i=10;

06_常量

常量:初始化后不能再改变值!不会变动的值

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行中不可被改变过

常量名一般使用大写字符

 static final double PI=3.14;

修饰符不存在先后顺序。

变量命名规范:

  • 所有变量、方法、类名要做到见名知意

  • 类成员变量:首字母小写和驼峰原则:除第一单词外,所有单词首字母大写 lastname 驼峰原则:lastName

  • 局部变量:首字母小写和驼峰原则

  • 常量:大写字母和下划线

  • 类名:首字母大写和驼峰原则

  • 方法名:首字母小写和驼峰原则

07_运算符

  • 算术运算符:+,-,*,/,%,++,--

  • 赋值运算符:=

  • 关系运算符:<,>,<=,>=,==,!=,instanceof

    关系运算符返回的结果只有布尔类型的true和false

  • 逻辑运算符:&&(与),||(或),!(取反)

  • 位运算符:&,|,^,~,>>,<<,>>>(了解)

  • 条件运算符:?,:

  • 扩展运算符:+=,-=,*=,/=

     a+=b;   a=a+b
     a-=b;   a=a-b

不同数据类型运算时自动转换为容量大的数据类型。

如果运算出的结果小数点后有多位数字,可以通过以下方式保留小数点:

 //保留小数点后两位
 //第一种
 System.out.printf("%.2f%n",2.5555);
 //第二种
 System.out.println(String.format("%.2f", 2.5555));

 

自增自减运算符

 int a=3;
 int b=a++;  //执行完这行代码后,先给b赋值,再自增
 //a=a+1
 System.out.println(a);      
 //a=a+1     
 int c=++a;  //执行这行代码前,先自增,在给b赋值
 System.out.println(a);      
 System.out.println(b);      
 System.out.println(c);   

a就是c运算后赋的值,b++的值为4,但是先赋的值是3(输出就为3了),然后自增1,变成了4,到c的时候先自增后在加1,最后的结果就是5了,最后又赋值给了a,a最后的结果就是5

 int a=1;
 int b=1;
 int c=a++ + ++b;
 //a先进入运算再自增(运算中为1),b自增后进入运算(运算中为2)
 System.out.println(c);
 //c=3
  • 逻辑运算符

    &&:与 (两个变量为真,则结果为true)

    || : 或(两个变量有一个为真,则结果为true)

    ! : 取反(如果是真,则变为假;如果为假,则变为真)

位运算符

   A= 0011  1100
   B= 0000  1101
 ​
 A&B: 0000  1100
 //如果两个数都为1,结果才为1,否则为0
 A|B: 0011  1101
 //如果两个数都为0,结果才为0,否则为1
 A^B: 0011  0001
 //如果两个位置相同则为0,不同则为1
  ~B: 1111  0010
 //如果是0变成1,是1变成0
 <<  左移  增大
 >>  右移  减小
 ​
 0000 0000   0
 0000 0001   1
 0000 0010   2
 0000 0100   4
 0000 1000   8
 0001 0000   16
 //以上二进制中发现,每次1向前进一位,其代表的十进制数字便乘以它本身
 ​
 2<<3  代表2在二进制中左移3位 (也是2*2*2*2 左移一次,乘一次2)
 2>>3  代表2在二进制中右移三位(也是2/2/2/2 右移一次,除一次2)
 int a=10;
 int b=20;
 System.out.println(""+a+b);
 //字符串在前会进行拼接
 System.out.println(a+b+"");
 //字符串在后则会进行运算
 ​
 //由于运行的顺序是由上往下,从左至右进行运行的,后面运行的数据类型会被转换成第一个运行的数据类型
  • 三元运算符

  x ? y : z

如x结果为true,则结果返回y,否则结果为z

 int score=90;
 String type=score<60?"不及格":"及格";
 //如果score小于60,则返回“不及格”,否则返回“及格”
posted on 2021-11-19 20:00  看见小行星  阅读(58)  评论(0编辑  收藏  举报