Java基础语法

Java基础语法

1. 注释丶标识符丶关键字

注释

public class HelloWorld {
   public static void main(String[] args){
       //输出一个hello world (单行注释)注释不会被执行 是给人看的
       System.out.println("Hello World!");
       //多行注释 /*注释 */
       /*
       1111111111
       222222222
       33333333333
       55555555555555
        */
       //JavaDoc:文档注释 /**   */
       /**
        * @Description hello
        * @Author 一颗苹果!!
        *
        *
        */
  }
}
```
/***                                                                          
*         .,:,,,                                       .::,,,::.          
*       .::::,,;;,                                 .,;;:,,....:i:        
*       :i,.::::,;i:.     ....,,:::::::::,....   .;i:,. ......;i.        
*       :;..:::;::::i;,,:::;:,,,,,,,,,,..,.,,:::iri:. .,:irsr:,.;i.        
*       ;;..,::::;;;;ri,,,.                   ..,,:;s1s1ssrr;,.;r,        
*       :;. ,::;ii;:,     . ...................     .;iirri;;;,,;i,        
*       ,i. .;ri:.   ... ............................ .,,:;:,,,;i:        
*       :s,.;r:... ....................................... .::;::s;        
*       ,1r::. .............,,,.,,:,,........................,;iir;        
*       ,s;...........     ..::.,;:,,.         ...............,;1s        
*       :i,..,.             .,:,,::,.         .......... .......;1,      
*     ir,....:rrssr;:,       ,,.,::.     .r5S9989398G95hr;. ....,.:s,      
*     ;r,..,s9855513XHAG3i   .,,,,,,,. ,S931,.,,.;s;s&BHHA8s.,..,..:r:    
*   :r;..rGGh, :SAG;;G@BS:.,,,,,,,,,.r83:     hHH1sXMBHHHM3..,,,,.ir.    
*   ,si,.1GS,   sBMAAX&MBMB5,,,,,,:,,.:&8       3@HXHBMBHBBH#X,.,,,,,,rr    
*   ;1:,,SH:   .A@&&B#&8H#BS,,,,,,,,,.,5XS,     3@MHABM&59M#As..,,,,:,is,  
* .rr,,,;9&1   hBHHBB&8AMGr,,,,,,,,,,,:h&&9s;   r9&BMHBHMB9: . .,,,,;ri.  
* :1:....:5&XSi;r8BMBHHA9r:,......,,,,:ii19GG88899XHHH&GSr.     ...,:rs.  
* ;s.     .:sS8G8GG889hi.       ....,,:;:,.:irssrriii:,.       ...,,i1,  
* ;1,         ..,....,,isssi;,       .,,.                     ....,.i1,  
* ;h:               i9HHBMBBHAX9:         .                     ...,,,rs,  
* ,1i..           :A#MBBBBMHB##s                             ....,,,;si.  
* .r1,..       ,..;3BMBBBHBB#Bh.     ..                   ....,,,,,i1;  
*   :h;..       .,..;,1XBMMMMBXs,.,, .. :: ,.               ....,,,,,,ss.  
*   ih: ..   .;;;, ;;:s58A3i,..   ,. ,.:,,.             ...,,,,,:,s1,    
*   .s1,....   .,;sh, ,iSAXs;.   ,. ,,.i85           ...,,,,,,:i1;    
*     .rh: ...     rXG9XBBM#M#MHAX3hss13&&HHXr         .....,,,,,,,ih;      
*     .s5: .....   i598X&&A&AAAAAA&XG851r:       ........,,,,:,,sh;      
*     . ihr, ... .         ..                   ........,,,,,;11:.      
*         ,s1i. ... ..,,,..,,,.,,.,,.,..       ........,,.,,.;s5i.        
*         .:s1r,......................       ..............;shs,          
*         . .:shr:. ....                 ..............,ishs.            
*             .,issr;,... ...........................,is1s;.              
*                 .,is1si;:,....................,:;ir1sr;,                  
*                   ..:isssssrrii;::::::;;iirsssssr;:..                    
*                         .,::iiirsssssssssrri;;:.                      
*/


/***
*               ii.                                         ;9ABH,          
*             SA391,                                   .r9GG35&G          
*             &#ii13Gh;                               i3X31i;:,rB1        
*             iMs,:,i5895,                         .5G91:,:;:s1:8A        
*               33::::,,;5G5,                     ,58Si,,:::,sHX;iH1        
*               Sr.,:;rs13BBX35hh11511h5Shhh5S3GAXS:.,,::,,1AG3i,GG        
*               .G51S511sr;;iiiishS8G89Shsrrsh59S;.,,,,,..5A85Si,h8        
*               :SB9s:,............................,,,.,,,SASh53h,1G.      
*           .r18S;..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....,,.1H315199,rX,      
*         ;S89s,..,,,,,,,,,,,,,,,,,,,,,,,....,,.......,,,;r1ShS8,;Xi      
*       i55s:.........,,,,,,,,,,,,,,,,.,,,......,.....,,....r9&5.:X1      
*       59;.....,.     .,,,,,,,,,,,...       .............,..:1;.:&s      
*     s8,..;53S5S3s.   .,,,,,,,.,..     i15S5h1:.........,,,..,,:99      
*     93.:39s:rSGB@A; ..,,,,.....   .SG3hhh9G&BGi..,,,,,,,,,,,,.,83      
*     G5.G8 9#@@@@@X. .,,,,,,..... iA9,.S&B###@@Mr...,,,,,,,,..,.;Xh    
*     Gs.X8 S@@@@@@@B:..,,,,,,,,,,. rA1 ,A@@@@@@@@@H:........,,,,,,.iX:    
*     ;9. ,8A#@@@@@@#5,.,,,,,,,,,... 9A. 8@@@@@@@@@@M;   ....,,,,,,,,S8    
*     X3   iS8XAHH8s.,,,,,,,,,,...,..58hH@@@@@@@@@Hs       ...,,,,,,,:Gs  
*   r8,       ,,,...,,,,,,,,,,..... ,h8XABMMHX3r.         .,,,,,,,.rX:  
*   :9, .   .:,..,:;;;::,.,,,,,..         .,,.               ..,,,,,,.59  
* .Si     ,:.i8HBMMMMMB&5,....                   .           .,,,,,.sMr
* SS       :: h@@@@@@@@@@#; .                     ... .         ..,,,,iM5
* 91 .   ;:.,1&@@@@@@MXs.                           .         .,,:,:&S
* hS .... .:;,,,i3MMS1;..,..... . .     ...                     ..,:,.99
* ,8; ..... .,:,..,8Ms:;,,,...                                     .,::.83
*   s&: .... .sS553B@@HX3s;,.   .,;13h.                           .:::&1
*   SXr . ...;s3G99XA&X88Shss11155hi.                             ,;:h&,
*     iH8: . ..   ,;iiii;,::,,,,,.                                 .;irHA  
*     ,8X5;   .     .......                                       ,;iihS8Gi
*         1831,                                                 .,;irrrrrs&@
*           ;5A8r.                                           .:;iiiiirrss1H
*             :X@H3s.......                               .,:;iii;iiiiirsrh
*             r#h:;,...,,.. .,,:;;;;;:::,...             .:;;;;;;iiiirrss1
*             ,M8 ..,....,.....,,::::::,,...         .     .,;;;iiiiiirss11h
*             8B;.,,,,,,,.,.....         .           ..   .:;;;;iirrsss111h
*           i@5,:::,,,,,,,,.... .                   . .:::;;;;;irrrss111111
*           9Bi,:,,,,......                       ..r91;;;;;iirrsss1ss1111
*/


/***                                                                    
*           .,,       .,:;;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;:.                        
*                       ..,:::;;;;:::,,.                            
*/                                                                    

/***
*                   .::::.
*                 .::::::::.
*                 ::::::::::: FUCK YOU
*             ..:::::::::::'
*           '::::::::::::'
*             .::::::::::
*       '::::::::::::::..
*             ..::::::::::::.
*           ``::::::::::::::::
*           ::::``:::::::::'       .:::.
*           ::::'   ':::::'       .::::::::.
*         .::::'     ::::     .:::::::'::::.
*       .:::'       ::::: .:::::::::' ':::::.
*       .::'       :::::.:::::::::'     ':::::.
*     .::'         ::::::::::::::'         ``::::.
* ...:::           ::::::::::::'             ``::.
* ```` ':.         ':::::::::'                 ::::..
*                   '.:::::'                   ':'````..
*/

标识符

Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。

  • 标识符由数字(0~9)和字母(A~Z 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。

  • 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。 另外,Java 区分大小写,因此 myvar 和 MyVar 是两个不同的标识符。

提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。

标识符分为两类,分别为关键字和用户自定义标识符。

  1. 关键字是有特殊含义的标识符,如 true、false 表示逻辑的真假。

  2. 用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,如 abc 就是一个标识符。 提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。

例如以下合法与不合法标识符。

  • 合法标识符:date、$2011、date、D$date 等。

  • 不合法的标识符:123.com、2com、for、if 等。 标识符用来命名常量、变量、类和类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。

关键字

关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。 HelloJava.java 中的 class 就是一个关键字,它用来声明一个类,其类名称为 HelloJava。public 也是关键字,它用来表示公共类。另外,static 和 void 也是关键字。Java 的关键字对 Java 编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。保留字是为 Java 预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。

Java 语言目前定义了 51 个关键字,这些关键字不能作为变量名、类名和方法名来使用。以下对这些关键字进行了分类。

  1. 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。

  2. 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。

  3. 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。

  4. 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。

  5. 保留字:true、false、null、goto、const。

提示:由于 Java 区分大小写,因此 public 是关键字,而 Public 则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名。

2. 数据类型

Java是强类型语言,要求变量的使用要严格符合规定,所有的变量都必须事先定义之后才可以使用

public class demo01 {
   public static void main(String[] args) {
       String a;
       System.out.println(a);//错误,a未赋值
  }
}

public class demo01 {
   public static void main(String[] args) {
       String a="10";
       System.out.println(a);//正确
  }
}

数据类型分为两大类

基本类型(primitive type)

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

整数类型

byte:

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;

  • 最小值是 -128(-2^7)

  • 最大值是 127(2^7-1)

  • 默认值是 0

  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;

  • 例子:byte a = 100,byte b = -50。

short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数

  • 最小值是 -32768(-2^15)

  • 最大值是 32767(2^15 - 1)

  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

  • 默认值是 0

  • 例子:short s = 1000,short r = -20000。

int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;

  • 最小值是 -2,147,483,648(-2^31)

  • 最大值是 2,147,483,647(2^31 - 1)

  • 一般地整型变量默认为 int 类型;

  • 默认值是 0

  • 例子:int a = 100000, int b = -200000。

long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;

  • 最小值是 -9,223,372,036,854,775,808(-2^63)

  • 最大值是 9,223,372,036,854,775,807(2^63 -1)

  • 这种类型主要使用在需要比较大整数的系统上;

  • 默认值是 0L

  • 例子: long a = 100000L,Long b = -200000L。 "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

浮点类型

float:

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;

  • float 在储存大型浮点数组的时候可节省内存空间;

  • 默认值是 0.0f

  • 浮点数不能用来表示精确的值,如货币;

  • 例子:float f1 = 234.5f。

double:

  • double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;

  • 浮点数的默认类型为 double 类型;

  • double类型同样不能表示精确的值,如货币;

  • 默认值是 0.0d

  • 例子:

    double   d1  = 7D ;
    double   d2 = 7.;
    double   d3 = 8.0;
    double   d4 = 8.D;
    double   d5 = 12.9867;

    7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。

boolean类型

boolean:

  • boolean数据类型表示一位的信息;

  • 只有两个取值:true 和 false;

  • 这种类型只作为一种标志来记录 true/false 情况;

  • 默认值是 false

  • 例子:boolean one = true。

字符类型

char:

  • char 类型是一个单一的 16 位 Unicode 字符;

  • 最小值是 \u0000(十进制等效值为 0);

  • 最大值是 \uffff(即为 65535);

  • char 数据类型可以储存任何字符;

  • 例子:char letter = 'A';。

public class demo02 {
   public static void main(String[] args) {
       //八大基本数据类型
       int num1=10;//最常用
       byte num2=20;
       short num3=30;
       long num4=30L;//long类型后面加个L区分
       //小数:浮点数
       float num5=50.1F;//float类型后面加个F区分
       double num6=3.1415926;
       //字符
       char name='A';
       //字符串.string不是关键字,类
       String namea="😀";
       //布尔值
       boolean flag=true;
       //Boolean flag=false;
       
  }
}

引用类型(reference type)

接口

数组

字节

位(bit):计算机内部存储的最小单位,11001100是一个八位二进制数

字节(bite):是计算机中数据处理的基本单位,习惯上用大写B来表示

1B(byte,字节)=8bit(位)

字符:是指计算机中使用的字母、数字、字和符号

1bit表示1位

1Byte表示一个字节1B=8b

1024B=1KB

1024KB=1M

1024M=1G


public class demo03 {
   public static void main(String[] args) {
       //整数拓展: 进制 二进制0b 十进制 八进制0   十六进制0b
       int i=10;
       int i2=010;//八进制0
       int i3=0x10;//十六进制0x 0~9 A~F 16
       System.out.println(i);
       System.out.println(i2);
       System.out.println(i3);
       System.out.println("=====================================");
       //===================================================
       //浮点数拓展?
       //BigDecimal
       //float;有限 离散 舍入误差 大约 接近但不等于
       //double;
       float f=0.1f;
       double d=1.0/10;//0.1
       System.out.println(f==d);//false
       System.out.println(f);
       System.out.println(d);
       //===============================
       char c1='a';
       char c2='中';
       System.out.println(c1);
       System.out.println(c2);
       System.out.println((int)c1);//强转
       System.out.println((int)c2);//强转
       // 所有的字符本质上还是数字,unicode 2字节 65536
       // u0000 uFFFF
       char c3='\u0061';
       System.out.println(c3);//字符a

       //转义字符
       // \t 制表符
       // \n 换行
       //...
       System.out.println("hello\tworld");
       System.out.println("hello\nworld");
       //===========================
       String sa=new String("hello");
       String sb=new String("hello");
       System.out.println(sa==sb);//false
       //===========================
       String sc="hello";
       String sd="hello";
       System.out.println(sc==sd);//true
       //===========================
       String sf=new String("hello");
       String sg="hello";
       System.out.println(sf==sg);//false
       //boolean 扩展
       boolean flag=true;
       if (flag=true){}//新手
       if(flag){}//老手

  }

}

 

3. 类型转换

java是强类型语言,进行有些运算的时候,需要用到类型转换

由低到高:

byte, short,char->int-> float->double

运算中不同类型的数据先转换为同一种类型再进行运算

public class demo04 {
   public static void main(String[] args) {
       int i=128;
       /*byte b=(byte)i;//内存溢出*/
       double b=i;
       //强制转换 (类型)变量名 高--低
       //自动转换 低--高
       System.out.println(i);//128
       System.out.println(b);//-128
       /*
       1.不能对布尔值进行转换
       2.不能把对象类型转换为不相干的类型
       3.在把高容量转换到低容量的时候,强制转换
       4.转换的时候可能会存在内存溢出或者精度问题
        */
       System.out.println("========================================");
       System.out.println((int)23.7);//23
       System.out.println((int)-45.89f);//-45
       System.out.println("========================================");
       char c='a';
       int d=c+1;
       System.out.println(d);
       System.out.println((char)d);
  }
}


public class demo05 {
   //操作比较打的数的时候,注意溢出问题
   //JDK7新特性,数字之间可以用下划线分割
   public static void main(String[] args) {
       int money=1000_000_000;
       int year =20;
       int total=year*money;//-1474836480,计算的时候溢出了
       System.out.println(total);
       long total2=money*year;//默认是int,转换之前就已经存在问题了
       long total3=money*(long)(year);//先一个数转换为long
       System.out.println(total3);

  }

}

 

4. 变量、常量

变量:可以变化的量

java是强类型语言.每个变量都必须声明其类型

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

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

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

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

    import java.util.SortedMap;

    public class demo07 {
       //类变量 static
       static double salary=2500;
       //属性:变量
       //实例变量:从属于对象: 如果不进行初始化,这个类型的默认值 0 0.0
       //布尔值默认为false
       //除了基本类型,其余的默认值都是null;
       String name;
       int age;
       //main方法
       public static void main(String[] args) {
           //局部变量;
           int i=10;
           System.out.println(i);
           //变量类型 变量名字=new demo07();
           demo07 Demo07=new demo07();
           System.out.println(Demo07.age);
           System.out.println(Demo07.name);
           //类变量 static
           System.out.println(salary);

      }
       //其他方法
       public void add(){
          /* System.out.println(i);*/
      }
    }

    常量:初始化之后不再改变的值,特殊的变量,程序运行过程中不可变

    final 常量名=值;

    final double PI=3.14;

    常量一般使用大写字符

    public class demo08 {
       //修饰符不存在先后顺序
      /* static final double PI=3.14;*/
       final static  double PI=3.14;

       public static void main(String[] args) {
           System.out.println(PI);
      }
    }

    原则:

    1. 所有变量类名方法:见名知意

    2. 类成员变量:首字母小写和驼峰原则:monthSalary

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

    4. 常量:大写字母和下划线:MAX_VALUE

    5. 类名:首字母大写和驼峰原则:Man,GoodMan

    6. 方法名:首字母小写和驼峰原则:run(),runRun()

     

5. 运算符:

  1. 算数运算符:+,-,*,/,%,++,--

  2. 赋值运算符:=

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

  4. 逻辑运算符:&&,||,!(与或非)

  5. 位运算符:&,|,^,~,>>,<<,>>>

  6. 条件运算符?:

  7. 扩展赋值运算符:+=,-=,*=,/=

    package operator;

    public class Demo04 {
       public static void main(String[] args) {
           //++-- 自增 自减 一元运算符
           int a=3;
           int b=a++;//执行完这段代码后,先给b赋值,再自增
           //a++ a=a+1;
           int c=++a;
           //执行完这段代码前先自增,再给b赋值
           // ++a a=a=1
           System.out.println(a);
           System.out.println(b);
           System.out.println(c);
           //幂运算2^3 2*2*2=8,很多运算会使用工具类来操作!
           double pow=Math.pow(2,3);
           System.out.println(pow);
      }
    }
    package operator;

    public class Demo03 {
       public static void main(String[] args) {
           //关系运算符返回的结果: 正确错误,布尔值
           int a=10;
           int b=20;
           System.out.println(a==b);
           System.out.println(a>b);
           System.out.println(a<b);
      }
    }

    package operator;

    public class Demo02 {
       public static void main(String[] args) {
           long a=12123123123123L;
           int b=123;
           short c=10;
           byte d=8;
           System.out.println(a+b+c+d);//long
           System.out.println(b+c+d);//Int
           System.out.println(c+d);//Int
      }
    }
    package operator;
    //逻辑运算符
    public class Demo05 {
       public static void main(String[] args) {
           //与或非
           boolean a=true;
           boolean b=false;
           System.out.println("a&&b:"+(a&&b));//逻辑与运算:都为真才为true
           System.out.println("a||b:"+(a||b));//逻辑或运算:两个变量一个为真结果才为true
           System.out.println("!(a&&b):"+!(a&&b));//真为假,假为真
           //短路运算
           int c=5;
           boolean d=(c<4)&&(c++<4);
           System.out.println(d);
           System.out.println(c);

      }
    }
    package operator;

    public class Demo06 {
       public static void main(String[] args) {
           /*
           A=0011 1100;
           B=0000 1101
           A&B=0000 1100;
           A|B=0011 1101;
           A^B=0011 0001
           ~B=1111 0010
           2*8=16 2*2*2*2
           <<
           >>
           0000 0000 0
           0000 0001 1
           0000 0010 2
           0000 0011 3
           0000 0100 4
           0000 1000 8
           0001 0000 16
            */
           System.out.println(2<<3);
      }
    }
    package operator;

    public class Demo07 {
       public static void main(String[] args) {
           int a=10;
           int b=20;
           a+=b;//a=a+b;
           a-=b;//a=a-b;
           System.out.println(a);
           //字符串连接符 +,String
           System.out.println(a+b);
           System.out.println(""+a+b);
           System.out.println(a+b+"");
      }
    }
    package operator;
    //三元运算符
    public class Demo08 {
       public static void main(String[] args) {
           //x?y:z
           //如果x==true,则结果为y,否则结果为z
           int score=80;
           String type= score<60 ?"不及格":"及格";
           System.out.println(type);
      }
    }

优先级:

 

序列号符号名称结合性(与操作数)目数说明
1 . 从左到右 双目  
( ) 圆括号 从左到右      
[ ] 方括号 从左到右      
2 + 正号 从右到左 单目  
- 负号 从右到左 单目    
++ 自增 从右到左 单目 前缀增,后缀增  
- - 自减 从右到左 前缀减,后缀减    
~ 按位非/取补运算 从右到左 单目    
逻辑非 从右到左 单目 “!”不可以与“=”联用  
3 * 从左到右 双目  
/ 从左到右 双目 整数除法:取商的整数部分,小数部分去掉,不四舍五入  
% 取余 从左到右 双目    
4 + 从左到右 双目  
- 从左到右 双目    
5 << 左移位运算符 从左到右 双目  
>> 带符号右移位运算符 从左到右 双目    
>>> 无符号右移 从左到右 双目    
6 < 小于 从左到右 双目 关系运算符“大于”说明
<= 小于或等于 从左到右 双目    
> 大于 从左到右 双目    
>= 大于或等于 从左到右 双目    
instanceof 确定某对象是否属于指定的类 从左到右 双目    
7 == 等于 从左到右 双目 关系运算符“==”说明
!= 不等于 从左到右 双目    
8 & 按位与 从左到右 双目  
9 | 按位或 从左到右 双目  
10 ^ 按位异或 从左到右 双目  
11 && 短路与 从左到右 双目  
12 || 短路或 从左到右 双目  
13 ? : 条件运算符 从右到左 三目  
14 = 赋值运算符 从右到左 双目  
+= 混合赋值运算符        
-=          
*=          
/=          
%=          
&=          
|=          
^=          
<<=          
>>=          
>>>=          

6. 包机制、JavaDoc

包机制用于区别类名的命名空间.

语法格式:

package pkg1[.pkg2[.pkg3[...]]]

为了使用某个包的成员,我们需要在java程序中明确导入该包

import com.gwj.base.*; *代表导入所有东西

JavaDoc是用来生成自己API文档的

@anthor作者名

@version版本号

@since 指明需要最早使用的jdk版本

@param 参数名

@return返回值情况

@throws异常抛出情况

package base;

/**
* @author 顾文杰
* @version 1.0;
* @since 1.8
*/

public class Doc {
   String name;

   /**
    *
    * @param name
    * @return
    * @throws Exception
    */
   public String test(String name)throws Exception{
       return name;
  }
}

 

posted @ 2021-06-28 17:10  一颗苹果!!  阅读(55)  评论(0)    收藏  举报