一、注释

  1. 单行注释 //
    快捷键Ctrl+/再次按撤销注释
    一般用来注释局部变量。
public static void main(String[] args){
    System.out.print("Hello,World!");//输出语句
}
  1. 多行注释/ /
    多行注释:Ctrl+shift+/ 撤销Ctrl+shift+\
    可用来注释文件头、算法实现、方法中的复杂代码块、修改记录
public static void main(String[] args){
   /*for(int i=0;i<10;i++){
       System.out.print("i="+i);//输出语句
   }*/
}
  1. 文档注释
    文档注释:shift+alt+j
    可用来注释类、接口、静态方法、成员方法、静态变量、成员变量、常量
    或者在定义完:注释类、接口、静态方法、成员方法、静态变量、成员变量、常量后,在上面加上/**在按Enter建也能生成
public class Main {
    /**
     * @autor 
     * @param args
     */
    public static void main(String[] args) {
	// write your code here
    }
}

二、标识符

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

标识符注意点

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_) 开始
  • 首字符之后可以字母(A-Z或者a-z),美元符($)、或者下划线(_)或者数字的任何字符组合
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感
  • 合法标识符举例:age、$salary、value、 _ _ 1 _value
  • 非法标识符举例:123abc、-salary、#abc
public static void main(String[] args) {
	    String 王者荣耀="最强王者";
        System.out.println(王者荣耀);
    }
  • 可以使用中文命名,但是一般不建议这样使用,也不建议使用拼音,很Low

三、数据类型

1. 强类型语言

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

2.弱语言类型

  • eg:VB、Js

3.Java的数据类型分为两大类

  • 基本类型
  • 引用类型

Java 怎么实现邮件撤回 java中怎么撤回_java


Java 怎么实现邮件撤回 java中怎么撤回_变量名_02

4. 变量

  • 变量是什么:就是可以变化的量
  • Java是一种强类型语言,每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=name][{,varName[=value]}];
//数据类型  变量名 = 值;可以使用逗号隔开来声明多个同类型变量
  • 注意事项:
  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  • 变量名必须是合法的标识符
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
public static void main(String[] args) {
		//八大基本数据类型
        
        //整数
        int num1=10;//最常用 
        byte num2=10;
        short num3=30;
        long  num4=30L;//Long类型要在数字后面加个L
            
        //小数:浮点数
        float num5=50.1F//float类型要在数字后面加个F
        double num6=3.1415926;
        
         //字符
         char name="中";
         //字符串,String不是关键字,是类
         //String name="张三";
        
        //布尔值:是非
        boolean flag=true;
        //boolean flag=false;
    }

5.关于字节

  • 位(bit)是计算机内部数据存储的最小单位,11001100是一个八位二进制数
  • 字节(byte)是计算机中数据处理的基本单位,习惯上用大写字母B
  • 1B(byte)=8bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号

PS:

  • 1bit表示1位
  • 1Byte表示一个字节 1B = 8b
  • 1024B = 1KB
  • 1024KB = 1M
  • 1024M = 1G

6.整数拓展

进制:二进制0b、十进制、八进制0和十六进制0x

public static void main(String[] args) {
     int num=10;//十进制
     int num1=010;//八进制
     int num2=0b10;//二进制
     int num3=0x10;//十六进制 0~9、A~F
 }

7.浮点数拓展

银行业务的表示:钱

float:有限、离散、舍入误差、大约、接近但不等于

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

推荐使用BigDecimal 数学工具类

public static void main(String[] args) {
     float f=0.1f;
     double d=1.0/10;
     
     System.out.println(f==d);//false
     
     float d1=13215313f;
     float d2=d1+1;
     
     System.out.println(d1==d2);//true
 }

8.字符拓展

1. 将字符类型强制转换成ASCII码值

public static void main(String[] args) {
     char c1='a';
     char c2='中';
     
     System.out.println(c1);
     System.out.println((int)c1);//强制转换,97
     System.out.println(c2);
     System.out.println((int)c2);//强制转换,20013
 }

所有的字符本质还是数字

编码 Unicode表:(97=a 65=A) 2字节 0~65536 Excel 2^16=65536

2. 转义字符

转义字符

意义

ASCII码值(十进制)

\0

空字符(NUL)

000

\a

响铃(BEL)

007

\b

退格(BS) ,将当前位置移到前一列

008

\t

水平制表(HT) (跳到下一个TAB位置)

009

\n

换行(LF) ,将当前位置移到下一行开头

010

\v

垂直制表(VT)

011

\f

换页(FF),将当前位置移到下页开头

012

\r

回车(CR) ,将当前位置移到本行开头

013

\"

代表一个双引号字符

034

\’

代表一个单引号(撇号)字符

039

?

代表一个问号

063

\\

代表一个反斜线字符’\’

092

\ddd

1到3位八进制数所代表的任意字符

三位八进制

\xhh

十六进制所代表的任意字符

十六进制

PS:

1. 区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换

2. \xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == '\xF’

四、类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
  • 运算中,不同的数据先转化为同一类型,然后进行运算

Java 怎么实现邮件撤回 java中怎么撤回_Java 怎么实现邮件撤回_03

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

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

public static void main(String[] args) {
     //JDK7特性,数字之间可以用下划线分割
     int money=10_0000_0000;
     System.out.println(money);//1000000000
     int years=20;
     int total=money*years;
     System.out.println(total);//-1474836480,计算的时候溢出了
     long total2=money*years;//默认是int,转换之前已经存在问题了
     long total2=money*((long)years);//先把一个数转换为Long
 }

五、变量与常量

1. 变量

  • 变量是什么:就是可以变化的量
  • Java是一种强制型语言,每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域
type varName [=value][{,varname[=value]}];
//数据类型   变量名  =  值;  可以使用逗号隔开来声明多个同类型变量
  • 注意事项
  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  • 变量名必须是合法的标识符
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Variable{
    static int allClicks=0;//类变量
    String str="hello world";//实例变量
    
    public void method() {
        int i=0;//局部变量
    }
}

2.常量

  • 常量:初始化后不能在改变值,不会变动的值
  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名=值;
final double PI=3.14;
  • 常量名一般使用大写字符

3. 变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

4.运算符

Java语言支持的运算符如下:

  • 算术运算符:+,-,*,/,%,++,–
  • 赋值运算符:=
  • 关系运算符:>、<、>=、<=、==、!=、instanceof
  • 逻辑运算符:&&、||、!
  • 位运算符:&、|、^、~、>>,<<、>>>
  • 条件运算符:?:
  • 扩展赋值运算符:+=、-=、*=、/=

(1) 二目运算符

public static void main(String[] args) {
     //二目运算符
     //Ctrl+D:复制当前行到下一行
      int a=10;
      int b=20;
     
     System.out.println(a+b);//30
     System.out.println(a-b);//-10
     System.out.println(a*b);//200
     System.out.println(a/b);//0
     System.out.println(a/(double)b);//0.5
 }

(2) 运算中的自动类型转换

public static void main(String[] args) {
     long a=123123123123123L;
     int b=123;
     short c=10;
     byte d=8;
     
     System.out.println(a+b+c+d);//123123123123264(Long)
     System.out.println(b+c+d);//141(int)
     System.out.println(c+d);//18(int)
     //自动类型转换
 }

(3) 关系运算符返回的结果

public static void main(String[] args) {
     //关系运算符返回的结果:正确(true)/错误(false)--->布尔值
     int a=10;
     int b=20;
     int C=22;
     
     System.out.println(a>b);//false
     System.out.println(a<b);//true
     System.out.println(a==b);//false
     System.out.println(a!=b);//true
     
     //取余/模运算
     System.out.println(c%a);//2--->c/a=22/10=2....2
 }

(4) 一元运算符

前置与后置的区别:

前置++/–:先执行+1/-1操作,再执行赋值运算

后置++/–:先执行赋值运算,再执行+1/-1操作

public static void main(String[] args){
    //++、--  自增、自减  一元运算符
    
    int a=3;
    int b=a++;
    int c=++a;
    
    System.out.println(a);//5
    System.out.println(b);//3
    System.out.println(c);//5
    
    //幂运算2^3--->2*2*2=8
    //很多运算,需要使用一些工具类来操作
    double pow=Math.pow(3,2);
    System.out.println(pow);
}

(5) 逻辑运算符

public static void main(String[] args){
    //与(and)	或(or)	非(取反)
    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(c);//5
    System.out.println(d);//false
}

(6) 位运算符

A = 0011 1100

B = 0000 1101

  • 与运算:同1为1
    A&B = 0000 1100
  • 或运算:有1为1
    A|B = 0011 1101
  • 异或运算:不同则为1
    A^B = 0011 0001
  • 取反运算:有1为0,有0为1
    ~B = 1111 0010
  • 左移<<与右移>>
    2 * 8 = 16----> 222*2
    *<< 2
    >> /2
public static void main(String[] args){
    System.out.println(2<<3);//16
}

(7) 扩展赋值运算符

public static void main(String[] args){
    int a=10;
    int b=20;
    
    a+=b;//a=a+b
    System.out.println(a);//30
    a-=b;
    System.out.println(a);//-10
}

(8) 字符串连接符 +

public static void main(String[] args){
    int a=10;
    int b=20;
    
    //当String类型位于运算之前,则字符串连接符+实现的是字符串连接
    System.out.println(""+a+b);//1020
    //当String类型位于运算之后,则字符串连接符+实现的是普通运算
    System.out.println(a+b+"");//30
}

(9) 三元运算符

x ? y : z

如果 x==true,则结果为 y,否则结果为 z

public static void main(String[] args){
    int score=80;
    String type = score<60?"不及格":"及格";
    System.out.println(type);//及格
}

PS:

=与==的区别区别:

a=b //把b的值赋予给a;
a==b //判断a等于b