Java-1 基础前言

1.Java中基础前言

1.1关键字

  • 被java语言赋予了特殊意义的单词,组成关键词都小写。

1.2标识符

  • 给类,接口,方法,变量等起的名字时候使用字符序列,组成规则:

    英文大小写字母,数字字符,$和_
    不能以数字开头,不能是java关键字,区分大小写。
    
  • 约定俗称命令方法

    1.给类和接口命名:大驼峰命名法,首字母大写,多个单词,每个单词首字母都大写。
        
    2.给方法和变量起名,小驼峰命名法。
        
    3.包:命名反转用.隔开
        e.g.:
    		www.alibaba.com fastjson
             com.alibaba.项目名称.模块名称	com.alibaba.fastjson
    

1.3 常量

  • 值不变的量为常量,所有字母都大写,多个单词中间使用_隔开

    public static final double PI = 3.14;
    SECRET_KEY = "#$#$#$SDWERS%#ssdfs"
    
  • 分类

    字面值常量:
    	字符串常量
    	整数常量
    	小数常量
    	布尔值常量
    	字符常量
    	空常量
    自定义常量:e.g.: final修饰的变量
    
  • demo

    class ConstDemo{
    	public static void main([]string args){
    		System.out.print("hello");// print打印完不换行
    		System.out.println("hello");// println打印完内容后换行
    	}
    }
    

1.4进制

  • 在java中有二进制(0,1),八进制(0-7),十进制(0-9),十六进制(0-9 a-f)。

  • 进制之间相互转换

    
    

1.5 变量

  • 在java程序运行的过程中,它的值可以在一定范围内发生改变的量。

  • 变量定义

    数据类型 变量名 = 初始值
    
  • demo

    class VarDemo{
    	public static void main(String[] args){
    		int socre = 0;
    		int golds = 300;
    		String name = "hello world";
    		
    	}
    }
    
  • 变量注意事项

    1.变量所在大括号叫做变量作用域,同一个作用域中不能有多个名字相同变量
    2.定义在方法中变量是局部变量,局部变量只声明,不赋初始值,不能使用,定义在类中方法外的变量才有默认值。
    3.同一行可以定义多个变量,但是不建议这么使用,可读性差。
    

2.数据类型

  • Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间。

    基本数据类型
    	数值型 byte short int long
    	小数类型 float boolean
    	字符串型 char
    	布尔型	boolean
    		
    引用数据类型
    	类 class
    	接口 interface
    	数组 []
    

2.1基本数据类型

  • 数值型
类型 字节 位数 默认值 范围
byte 1 8 0 -128~~127
short 2 16 0 -32768~32767
int 4 32 0 -2147483648~2147483647
long 8 64 0 -9223372036854775808~9223372036854775807
float 4 32 0.0 -3.4E38~3.4028235E38
double 8 64 0.0 -1.79E-308~1.7976931348623157E308
char 2 16 0~65535
boolean 1 8 false true或false
  • 整数默认类型是int,小数默认类型是double

  • Demo

class DataType1{
	public static void main(String[] args){
		byte a = 100;
		short b = 10;
		char c = '的';
		int d = 10000;
		long f = 2147483649L;
        // 定义float小数一定要在小数后面添加f
		float g = 12.5f;
		double h = 132.43455;
		boolean bo = true;
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(f);
		System.out.println(g);
		System.out.println(h);
		System.out.println(bo);
	}
}

注意定义long类型变量时候,如果等号右侧在int范围内,则可直接赋值,如果超出int范围,需要在整数后面加上一个L。

  • 数据类型默认值
class DataType2{
	int b
	boolean bo;
    static char c;
	public static void main(String[] args){
		System.out.println(b);
		System.out.println(bo);
        System.out.println(c);// 空格
	}
}
报错:
.DataType2.java:5: 错误: 无法从静态上下文中引用非静态 变量 b
                System.out.println(b);
                                   ^
.DataType2.java:6: 错误: 无法从静态上下文中引用非静态 变量 bo
                System.out.println(bo);
                                   ^
2 个错误

// 原因:
	静态方法中只能调用外部用static修饰的变量
// 修改:
	// 将b和bo用static修饰
	static int b;
	static boolean bo;
  • 关于byte的练习
class ByteDemo{
	public static void main(String[] args){
		byte b1=3,b2=4,b;
		b = b1+b2;// 报错
         b = 3 + 4;// 不报错
	}
}
.ByteDemo.java:4: 错误: 不兼容的类型: 从int转换到byte可能会有损失
                b = b1+b2;
// b1和b2是byte类型,两个byte类型相加之后数据为int类型,int类型赋值给byte会报错,这里需要知道byte,short,char不能直接运算的,需要先转int类型。

// 结论:
	给byte.short类型变量赋值的时候要看等号(=)右边是否有变量:
        如果都是常量,看最终运算出来的结果是否在等号(=)左边的范围内,如果在则可以直接赋值
        如果有变量,则按照运算规则(byte,short,char),不能直接运算,需要先转成int类型,如果得到的结果范围大于等号(=)左边类型范围,则不能赋值
// 修改
        int b;
		b = b1+b2;
  • float 和long比较
float f = 123L;
System.out.println(f);
// 我们可以把一个long类型的值赋值给一个float类型变量。原因小数和整数存储类型在底层存储是不一样的。float的最大值远大于long最大值。所以可以把一个long类型赋值给float类型。
  • char类型
    • 字符:用单引号括起来的,只有一个字符,2个字节:0-65535
class DataType3{
	public static void main(String[] args){
		char ch = 'a';
		System.out.println(ch);// a
		System.out.println(ch + 1);// 98
		System.out.println('a' + 'b'); // 195
		
		char ch2 = 97;
		System.out.println(ch2);// a
        
        char ch3 = 'u0061';
		System.out.println(ch3);// a
	}
}
// 当定义char类型参数运算,打印的是数字,没有参与运算打印的的是字符。
// char类型默认值为0,表现形式为一个空格。
  • 强制类型转换
目标类型 变量名 = (目标类型) 要转换的值;
  • demo
class DataType3{
	public static void main(String[] args){
		// long -> int
		long a = 10;
		int b = (int) a;
		System.out.println(b);
		
		// int -> byte
		byte by = (byte) b;
		System.out.println(by);
	}
}
  • 除了布尔值,其他7种诶性之间都可以进行强转,一般把大类型转成小类型。

2.2引用数据类型

  • 类 class
  • 接口 interface
  • 数组 []

这里只是提一嘴后续回讲到

原文地址:https://www.cnblogs.com/xujunkai/p/13698014.html