Java基础梳理 II

标识符

概念:对某物体进行命名,从而使得程序进行识别;

硬性要求:

  1. 标识符必须以字母、下划线或者美元符号开头;
  2. 其他部分必须是字母、数字、下划线或者美元符号。其中不能包含类似“+”的特殊字符;
  3. 标识符区分大小写;
  4. 不能使用Java关键字或者保留字

一般规范:

1.驼峰标识:每个英文单词首字母大写
a.类名、接口名称在命名时单词首字母大写
b.方法、变量名命名时,第一个单词的首字母小写
2.见名知意
根据标识符可以知道作用含义,但不能是拼音;

Java采用的是Unicode国际通用字符集,2字节;
UTF-8:可变字节长度的字符集

关键字

概念:Java编程语言中,设定的一些特殊的单词,来标识代码中的特殊的结构,或者组成部分;

常量与变量

常量: 在程序运行中,值不会改变的量;明确的数字或者值,以及final修饰;
变量: 在程序运行中,值可以发生变化的量;

变量是程序的基本存储单位,包含变量名、变量类型、作用域;变量在使用前须对其进行声明,在变量声明后,才能为其分配相应长度的存储单元;
注意

  1. 成员变量:类里方法外,–未赋值时会有默认值;(整型-0;浮点型-0.0;布尔类型-false;字符型-null)
  2. 局部变量:方法内的变量必须要赋值,进行初始化;无默认值;
  3. final修饰的变量初始化一次,不可再被赋值,final b =2;b=3;程序报错;
public class Variable {
    static byte  a;
    static short c;
    static int d;
    static long e;
    static boolean f;
    static float g;
    static double h;
    static char m;
    public static void main(String[] args) {
        int b;
        System.out.println(a);//0
//        System.out.println(b);//Variable 'b' might not have been initialized
        System.out.println(c);//0
        System.out.println(d);//0
        System.out.println(e);//0
        System.out.println(f);//false
        System.out.println(g);//0.0
        System.out.println(h);//0.0
        System.out.println(m);//null
    }
}

数据类型

Java是一种强类型语言;
强类型:变量在定义时必须显示的声明具体的类型
弱类型:不需要指定类型,变量会根据值自己去进行推断
数据类型

整型:byte short int long

byte:1个字节 -128 - 127
short:2个字节 -32768-32767
int: 4个字节 约21亿
long:8个字节

注意

  1. 在使用整型时,默认都是int类型;
  2. 如果需要使用long类型,必须在数字背后使用‘L’或‘l’标注:
    如:long l = 2429825251L;不加L报错,是由于数字超过21亿,默认为int,超过int的长度;该赋值语句是先在存储空间中创建int类型大小的数字;再进行赋值给l;

浮点型 float double

float:单精度,可以精确到小数点后7位;
double:双精度,精度是float的双倍
注意

  1. 默认浮点类型为double类型;
  2. 使用float类型时,数字后面需要加’f‘
  3. 浮点数在小数位超过精度时,并不精确,存在舍入误差
    举例:float f1 = 1.7777777223f;
    float f2 = 1.77777771321f;
    在程序中进行比较f1和f2时,其大小相等

字符型:char

字符:单引号表示字符;双引号表示一系列字符的集合,叫字符串;
char类型用来表示在Unicode编码表中的字符;

Unicode:Unicode编码被设计用来处理各种语言的文字;占两个字节,有65536个字符;ASCII 码占1个字节有128字符,是Unicode编码的前128个字符;Java语言中允许使用转义字符’\‘来将其后的字符转为其他含义:‘\n’ 表示换行,且在java运行内容中,使用的编码为Unicode;
举例: System.out.println(“abc”+‘\n’+“bcd”);

char类型在内存中存储的是字符的Unicode码值,所以char类型可当作int类型处理;
举例:在Unicode中,A-65;a-97;
char str = A;
那么str == 65;结果为true;

布尔型 boolean

**boolean:**只有true、false两个值,存储占1位;用于逻辑判断

基础数据类型转换

在赋值运算或算术运算时,要求数据类型相同,不同时,需要先进行类型转换;除boolean类型外,所有的基本数据类型因为其各自精度不同,都要注意。

注意:

  1. 运算过程中,如果两个数据类型不一致,会自动将小的类型转为大的类型;
  2. 在运算过程中,对于数据类型不一致,可以强制转换,在数据前(dataType)data;
  3. 强制转换会发生精度损失;结果不准确
    等号两侧
    右侧 所有变量先转为字节数最多的数据类型进行计算
    左侧>右侧 自动转换
    左侧<右侧 强制转换

运算符

算术运算符、逻辑运算符、赋值运算符、关系运算符、位运算符、条件运算符

运算符类型运算符
算术运算符+, -, *, /(取商), %(取余), ++(加1), - -(减1)
赋值运算符=
扩展运算符+=(自加), -=(自减), *=(自乘), /= (自除)
关系运算符>, <, >=, <=, ==, !=
逻辑运算符&&, ||, ! ,&, |
条件运算符? :
位运算符&, |, ^, ~, >>, <<, >>>

算术运算符“++, --”

public class Operation{
	public static void main(String [] args){
		int a = 1;
		System.out.println(++a+a++);//结果为4
	}
}

扩展运算符

public class ExtendOperation {
    public static void main(String[] args) {
        byte a = 2;
        byte b = 3;

        b += 3;
        //a = a + 4;  Required type:byte Provided:int
        System.out.println(b);//值为
    }
}

位运算符:只能操作数值,操作的时候会转为二进制进行运算
&,| :如果两侧是数值,则为位运算符,是表达式则为逻辑运算符;

public class BitwiseOperation {
    public static void main(String[] args) {
        System.out.println(3 > 2 | 3 < 2);
        System.out.println(3 > 2 & 3 < 2);
        System.out.println(3 | 2);//11  10 => 11 => 3
        System.out.println(3 & 2);//11 10 => 10 => 2
        System.out.println(3 ^ 2);// 11 10 => 01 => 1
        System.out.println(4 ^ 5);// 100 101 => 001 => 1
        //移码、补码、原码、反码
        System.out.println(~2);//-3
        /**~代表按位取反,2在计算机中为:0...0010;取反:1..1101;最高位为代表符号,所以为负数
        *负数是在计算机中为补码的表示,所以减一为反码:1...1100;转为原码:
        *100...0011;代表数字:-3/
        //左乘右除
        System.out.println(2<<2);//8
        System.out.println(32>>2);//8
    }
}

条件运算符–?:

public class ConditionOperation {
    public static void main(String[] args) {
        System.out.println(3<4 ? 2 :6 );
        //使用的时候需要根一个表达式,表达式为true,返回?后面的结果,表达式为false,返回:后面的结果
        System.out.println(true?false:true?false:true);//false
        System.out.println(false?false:true?false:true);//false

优先级顺序:单目>算术>关系>逻辑>三目>赋值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值