18/6/21 Java语言基础

2018-07-15  本文已影响0人  早禾

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

变量与常量

final int a;
a = 1;//这样是可以的

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

基本数据类型

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
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)

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

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

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

运算符

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
    }
}
上一篇 下一篇

猜你喜欢

热点阅读