Day03-Java的常识,数据类型以及运算符

注释

良好的代码书写规范是从写注释开始的

单行注释 //
多行注释 /**/
文本注释 /** */
/***                                                                    
 *            .,,       .,:;;iiiiiiiii;;:,,.     .,,                   
 *          rGB##HS,.;iirrrrriiiiiiiiiirrrrri;,s&##MAS,                
 *         r5s;:r3AH5iiiii;;;;;;;;;;;;;;;;iiirXHGSsiih1,               
 *            .;i;;s91;;;;;;::::::::::::;;;;iS5;;;ii:                  
 *          :rsriii;;r::::::::::::::::::::::;;,;;iiirsi,               
 *       .,iri;;::::;;;;;;::,,,,,,,,,,,,,..,,;;;;;;;;iiri,,.           
 *    ,9BM&,            .,:;;:,,,,,,,,,,,hXA8:            ..,,,.       
 *   ,;&@@#r:;;;;;::::,,.   ,r,,,,,,,,,,iA@@@s,,:::;;;::,,.   .;.      
 *    :ih1iii;;;;;::::;;;;;;;:,,,,,,,,,,;i55r;;;;;;;;;iiirrrr,..       
 *   .ir;;iiiiiiiiii;;;;::::::,,,,,,,:::::,,:;;;iiiiiiiiiiiiri         
 *   iriiiiiiiiiiiiiiii;;;::::::::::::::::;;;iiiiiiiiiiiiiiiir;        
 *  ,riii;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;;;;;iiir.       
 *  iri;;;::::,,,,,,,,,,:::::::::::::::::::::::::,::,,::::;;iir:       
 * .rii;;::::,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,::::;;iri       
 * ,rii;;;::,,,,,,,,,,,,,:::::::::::,:::::,,,,,,,,,,,,,:::;;;iir.      
 * ,rii;;i::,,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,,::i;;iir.      
 * ,rii;;r::,,,,,,,,,,,,,:,:::::,:,:::::::,,,,,,,,,,,,,::;r;;iir.      
 * .rii;;rr,:,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,:,si;;iri       
 *  ;rii;:1i,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,:,ss:;iir:       
 *  .rii;;;5r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,sh:;;iri        
 *   ;rii;:;51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.:hh:;;iir,        
 *    irii;::hSr,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,sSs:;;iir:         
 *     irii;;:iSSs:.,,,,,,,,,,,,,,,,,,,,,,,,,,,..:135;:;;iir:          
 *      ;rii;;:,r535r:...,,,,,,,,,,,,,,,,,,..,;sS35i,;;iirr:           
 *       :rrii;;:,;1S3Shs;:,............,:is533Ss:,;;;iiri,            
 *        .;rrii;;;:,;rhS393S55hh11hh5S3393Shr:,:;;;iirr:              
 *          .;rriii;;;::,:;is1h555555h1si;:,::;;;iirri:.               
 *            .:irrrii;;;;;:::,,,,,,,,:::;;;;iiirrr;,                  
 *               .:irrrriiiiii;;;;;;;;iiiiiirrrr;,.                    
 *                  .,:;iirrrrrrrrrrrrrrrrri;:.                        
 *                        ..,:::;;;;:::,,.                             
 */ 

上面来自博客

数据类型

强类型语言

要求使用的变量严格符合规范,所有变量都需要定义后才能使用,Java属于强类型语言

弱类型语言

对于使用的变量不严格规范,如js中‘12’+3可以为123或者‘123’,但需要在编译器上做好规范

关键字

Java的组成部分名字,不可用于设置变量名或者方法名

标识符

  1. 以美元符号($),下划线(_),字母开头,用于给方法和变量命名

  2. 大小写敏感

  3. 不可以使用关键字来命名

Java的数据类型

基本类型(primitive type)

byte 1个字节
short 2个字节
整数类型 int 4个字节
数值类型 long 8个字节
float 4个字节
浮点类型 double 8个字节
字符类型 char 2个字节
布尔类型 ture false 只占1位

字节与位

位(bit):计算机内部存储数据的最小单位

字节(byte):计算机处理数据的基本单位,一般用大写的B表示

字符:指计算机中的使用的字符,文字,数字等

1B = 8bit

public class Main{
    public static void main(String[] args){
        //Java八大基本数据类型
        byte a = 1;
        short b = 2;
        int  c = 3;
        long d = 4L; //long类型需要在末尾增加L来表示数据类型
        
        float  e = 1.5F;//理由同上
        double f = 3.14259631;
        
        char g = 'a'; //当其中数量超过1个时,错误
        String h = 'abv'; //String不是关键字,而是一个类,不属于八大数据类型
        
        boolean i = 1; //布尔型只有对错
    }
}

引用类型

  1. 接口
  2. 数组

数据类型扩展

整数扩展:进制表示方式

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

浮点数扩展:银行业务表示方式

public class Main{
    public static void main(String[] args){
        float a = 0.1f; //0.1
        float b = 1/10; //0.1
        System.out.println(a==b); //结果是false
        float c = 23245615313f;
        float d = c+1;
        System.out.println(c==d); //结果是ture
    }
}

以上结果原因是:

float是有限但离散的,存在一个舍入误差,应当避免使用浮点数进行比较

解决方案:

BigDecimal()类

字符类型扩展:所有的字符本质仍是数字

public class Main{
    char a ='a';
    char b ='中';
    char c ='\u0061'
    System.out.printlnl(c);		 //输出的是a
    System.out.printlnl((int)a); //输出一个数字
}

布尔数据类型扩张:if判断

public class Main{
    public static void main(String[] args){
        boolean flag = ture;
        if(flag){
            System.out.println("当flag为ture时,执行此句代码")
        }
    }
}

转义字符

\t:制表符

\n:换行

类型转换

Java是强类型语言,所以运算的时候需要进行类型转换

从高数据类型转换为低数据类型时,需要进行强制转换如:

public class Main{
    public static void main(String[] args){
        int a = 128;
        byte b = (byte)a;
        float c = 1.456F;
        int d = int(c)
        System.out.println(b);//因为128大于byte型的数值范围,所以发生内存溢出
        System.out.println(c);//输出1,小数位丢失
    }
}

注意点

  1. 不要转换两个不相干的数据类型
  2. 不要转换布尔类型
  3. 强制转换时,需要注意内存溢出问题
  4. 浮点数与整数相互转换时,会有精度问题

JDK7新特性

可以用下划线对数字进行划分,数值不变,便于查看

int a = 10_0000_0000;

变量

Java是强类型语言,所有需要变化的量应该定义

Java变量是程序中最基本的存储单元,要素有三:

  1. 变量名
  2. 变量类型
  3. 作用域

变量的三种类型

  1. 类变量
  2. 实例变量
  3. 局部变量
public class Main{
    static int a = 1;	//类变量,增加static修饰符
    String name;//实例变量不初始化,一般输出默认值,从属于对象  		
    public static void main(String[] args){
        int b;
        System.out.println(a);//可直接输出1
        System.out.println(b);//报错,局部变量应当定义且初始化
        Main a = new Main();
        System.out.println(a.name);
        //布尔型的默认值为false
    }
}

常量

在程序过程中,初始化后不可改变

final int a = 1;

修饰符

static final 修饰符先后顺序不影响

命名规范

  1. 遵循驼峰原则,即除第一个单词外,其余单词首字母大写如lastName
  2. 类名首字母大写
  3. 常量使用大写字母和下划线表示

自增自减运算符

public class Main{
    public static void main(String[] args){
        int a =3;
        int b =a++;	//执行完代码后,先给b赋值,在自增
        int c =++a; //先自增,再给a赋值
        System.out.println(a); //输出3
        System.out.println(b); //输出3
        System.out.println(c); //输出5
    }
}

逻辑运算符

输出的值为布尔类型

位运算符

二进制计算,效率极高

2*8最快的方式

2x2x2x2

System.out.println(2<<3);
/*
0000 0000 0
0000 0010 2
0000 0100 4
0000 1000 8
往左移动三位相当于2*3
*/

字符串连接符

public class Main{
    public static void main(String[] args){
        int a = 10;
        int b = 20;
        System.out.println(""+a+b);//此时输出1020
        System.out.println(a+b+"");//此时输出30
    }
}

原因:

当数的前面出现字符串类型 时,将会自动将后面得数转换为字符串类型,如果是在两数后面出现则不影响

条件运算符

x ? y :z

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

public class Main{
    public static void main(String[] args){
        int score = 100;
        String result = score>90 ? "面试成功":"回家养猪"
        System.out.println(result);
    }
}
posted @ 2021-02-04 21:16  2月2日  阅读(157)  评论(0)    收藏  举报