Java语言特性

Java随笔


目录

  • Java语言特性
  • 语言基础
    • 变量
    • 数据类型
    • 自动类型转换
    • 运算符


  1. 面向对象

  2. 简单性    (自动内存管理机制、不易内存溢出)

  3. 跨平台

  4. *.java     -----编译----->   *.class    -----运行----->操作系统

    源文件               (含字节码)字节码文件

    先编译、再解释

  5. 将源文件编译成字节码文件,再将字节码文件进行解释执行

    J V M   虚拟机,使软件再不同操作系统中,模拟相同的环境

    J R E 运行环境,包含J V M和解释器,完整的Java运行环境

    J D K   开发环境   包含 J R E +  类库 + 开发工具包(编译器和调试工具)

  6. 代码注释


    //   单行注释
    
    /*...*/  多行注释
    
    /**
    *		文档注释
    */
    
        注释不参与编译
  7. 语法:

    1. 可以有字母(大小写) 、数字 、_ 、$ 组成,但不能以数字开头
    2. 不能与关键字、保留字重名
语言基础
变量
  1. 声明变量        数据类型 + 变量名       int    money;

  2. 赋值                  money  =  20;

    Java是强类型语言,变量的类型必须与数据类型一致

    声明变量 的常用三种方式

    1   先声明,再赋值

    数据类型    变量名; int   a ;

    变量名     =    值   a = 1;

    2  声明并赋值

    数据类型   变量名   =   变量值         int a   =  2;

    3  多个变量的声明与赋值

    数据类型    变量1,变量2,变量3=值3;

    int  a,b,c=3;

    数据类型 变量名 = 值;  理解把等号 右边的值 赋值给左边的变量保存。 
    //定义一个变量
    int age =  29;
    //访问一个变量
    System.out.println(age) // 这里不要“”
    public class VarDemo{
    
    	public static void main(String[] args){		
    		//定义
    		int age = 20;
    		//使用
    		//1.1 直接使用
    		System.out.println(age);
    		//1.2 变量值传递
    		int xiaoMingAge = age;
    		System.out.println(xiaoMingAge);
    		
    		
    		//声明一个变量
    		int money;
    		// 第一次赋值叫初始化
    		money = 100;
    		System.out.println(money);
    		// 修改变量值,变量允许执行期间修改值
    		money = 200;
    		System.out.println(money);
    		
    		 
    		//声明多个变量
    		int a , b, c;
    		a = 10086;
    		b = 10000;
    		c = 10010;
    		System.out.printf("%d %d %d \n",a,b,c);
    		
    		
    		// 声明多个变量 并赋值
    		int m , s=100, h=0;
    		m = 1;
    	    System.out.printf("%d %d %d \n",m,s,h);
    		
    		 
    		int level = 12;
    		//int level = 90; 			// Error 相同作用域下不允许出现同名变量
    		
    		int sg ;
    		// System.out.println(sg);  // Error 局部变量必须先赋值后使用
    		
    		int sb;
    		//sb= "hello";   			// Error  变量值实际类型必须和 变量类型一致(兼容)。
    	}
    }
    数据类型

    基本数据类型

    byteshortintlongfloatdoublecharboolean
    字节类型短整型整型长整型单精度双精度字符布尔
    1字节2字节4字节8字节4字节8字节2字节1字节

    int 是整数的默认数据类型,如需要为long类型赋值较大的数的时候需要在 数的后面加上“L”

    double是浮点数的默认数据类型,如需要为float类型赋值时,需要再值的后面加上“F”

    引用数据类型

    自定义类、String、接口、数组、枚举......

    输入一个单引号

        public static void main(String[] args) {
    
            char  a = ''';	//error		
    
        }

    几个转义字符

    转义字符含义
    \n换行
    \t缩进
    \\反斜线
    \'单引号
    \''双引号
自动类型转换
  1. 自动类型转换

    两种类型相互兼容

    目标类型大于源类型

        public static void main(String[] args) {
           byte a = 10;
           int s = a;
           System.out.println(a);
        }
  2. 强制类型转换

    两种类型相互兼容

    目标类型小于源类型

    public static void main(String[] args) {
       short a = 10;
       byte s = (byte) a;
        System.out.println(a);
    }

    byte -> short -> int -> long -> float -> double
    箭头右边变量 ,可以直接保存左边的变量,反之需要强转。

运算符
  1. 赋值运算符

=

int age = 100;

int money;
money = 200;

把等号右边的值赋给左边

  1. 算术运算符

    +    -     *     /    % 模
    public static void main(String[] args){
    		int  a = 5;
    		int  b = 2;
    		int c = a+b;
    		System.out.println(c);
    		
    		System.out.println(a+b);
    		System.out.println(a-b);
    		System.out.println(a*b);
    		System.out.println((double)a/b);
    		System.out.println(a%b);
    }

    除法运算结果精度参考参与数的最高精度。如果参与数都是整数结果会砍掉小数

  2. 关系运算符

	>  <  >=   <=  ==  !=
public static void main(String[] args){
		
		int a = 10;
		int b = 14;
		
		System.out.println( a > b );
		System.out.println( a >= b );
		System.out.println( a < b );
		System.out.println( a <= b );
		System.out.println( a == b );
		System.out.println( a != b );
	}

运算结果都是布尔值 boolean

4.逻辑运算符

&&   、   ||    、   !

运算法则: &&   同真则真,一假则假         || 一真则真 同假则假

!取反

  1. 自增自减

    	++	、  --	


    1	符号可以位于操作数前面或者后面
    2	无论在前还是在后,只要执行完成,要么+1,要么-1,即在前		在后对操作数的影响都是固定的 
    3	在前在后也对于表达式的影响是不一样的
        		在前:先运算再赋值
        		在后:先赋值再运算
  2. 三目运算

 A > B ?  A : B;
    public static void main(String[] args) {
       int a=10;
       int b =20;
     System.out.println( a> b ?  1 : 2 );
	 
    System.out.println( a> b ?  "是的" : "否" );
    }