18/6/21 Java语言基础

打卡Java笔记,这里是《JAVA从入口到放弃》第二章(* ´з`*)

变量与常量

  • 标识符:变量与常量的名字,严格区分大小写(如Hello和hello)
  • Java使用Unicode标准字符集
  • 常量的声明:final 数据类型 常量名称(一般全大写) ,只能赋值一次(赋值和声明可以分离,但只能赋值一次!)
final int a;
a = 1;//这样是可以的

final int b;
b = 1;
b = 2;//这样是不可以的

基本数据类型

  • Java的整数类型
    ~ byte 1字节 8位 -128~127
    ~ short 2字节 16位 -32768~32767
    ~ int 4字节 32位 -2147483648~2147483647(系统默认类型,整数赋值OR输出都默认int)
    ~ long 8字节 64位 -2的64次方~2的64次方-1
    如果一个式子计算结果位long而过程的整数没有另外的声明的话,需要在整数后面加个L(大写小写都行),也就是:
long right = 123456789l*987654321l;
//这样写,和下面是相等的
long a = 123456789l;//这里如果不加l其实就等于int 临时变量 = 123456789;long a =(long)临时变量;
long b = 987654321l;
long c = a*b;//结果为121932631112635269

long right = 123456789*987654321;
//这样写,和下面是相等的
int a = 123456789;
int b = 987654321;
int c = a*b;
long d = (long)c;//结果为-67153019
  • 进制的区别
    ~ 八进制在数字前面加上0,十六进制加上0x
    ~ 输出默认转回十进制,so如果要按原来进制输出,需要↓(Φ皿Φ)
public class TestJava{
    public static void main(String[] args){

        int a = 100;
        int b = 0100;
        int c = 0x100;
        System.out.println("a = " + a);
        System.out.println("二进制 a = " + Integer.toBinaryString(b));
        System.out.println("b = "+b);
        System.out.println("八进制 b = " + Integer.toOctalString(b));
        System.out.println("c = "+c);
        System.out.println("十六进制 c = " + Integer.toHexString(c));
    }
}
/*
输出:
a = 100
二进制 a = 1000000
b = 64
八进制 b = 100
c = 256
十六进制 c = 100
*/

如果中文在cmd里编译出错(java:10: 错误: 编码 GBK 的不可映射字符),就在编译的时候加上编码(javac -encoding utf-8 TestJava.java)

  • 浮点数
    ~ 默认是double,如果要用单精度float,要在数字后面加f
    ~ 浮点数不能直接用==来全等,只能计算Math.abs ( a - b ) < (1e-6);
    ~ 1e-6指1*10的-6次方,是计算机最小数的概念

!!!!说一下我对赋值“ = ”的想法
之所以在数值里强调默认是int默认是double,是因为=号左边的变量名是带类型声明的,但=号右边的数值作为一个临时的变量,如果不加后缀(l\L或者f\F),则会被当成默认的int或者double,编译的时候会提示:

TestJava.java:5: 错误: 过大的整数: 121932631112635269
                long c = 121932631112635269;

TestJava.java:4: 错误: 不兼容的类型: 从double转换到float可能会有损失
                float b = 0.0001;

运算符

  • 自增和自减运算符:放在变量之前会先增减1再参与运算,放再之后则先运算再增减1
public class TestJava{
    public static void main(String[] args){
        int a = 1;
        int b = a++;
        int c = ++a;
        System.out.println(a);//3
        System.out.println(b);//1
        System.out.println(c);//3
    }
}
  • 位运算符:用的很少,用到之后再细看
  • 复合赋值运算符:同上(书本P45自查)

你可能感兴趣的:(18/6/21 Java语言基础)