java知识点

//----------------------------------------------------------------------------------------
//public 公共的
//class 定义类关键字
//DT_01 类名,自定义命名
//创建一个公共的类,类名是DT_01
//一个java文件中,可以有很多class,但是 public class 只能有一个,并且 public class 的类名 必须和文件名一致
//-------------------------------------------------------------------------------------------------------------
public class Y1 {
    // 入口方法,程序的入口
        // 可以理解为 java的执行 只会执行main方法
        // public 公共的
        // static 静态的
        // void 没有返回值
        // main 方法名
        // (String[] args) 参数列表
        // main方法为固定写法,哪里也不能变
        // 唯一可以修改的地方是 args  写成什么都可以,需要符合命名规则
    public static void main(String[] args) {
        //控制台打印
 

// 创建一个8bit的空间,并给空间取名为b1,然后把2保存到该空间中
       byte b1=127;
       short s1=-32768;
    // long类型的值必须使用L或l结尾,不区分大小写,建议大写
       long i1=2147483647L;
    // float 需要F/f结尾,不区分大小写
       float f1=3.5F;
    // double 需要D/d结尾,不区分大小写,另外也可以省略
       double d1=55.6;
    // 布尔型的值,只有true和false
       boolean flag=true;
    // 字符型 使用单引号表示,并且有且只有一个字符
    // ASCII是 字符和整数直接的映射
     char c1='!';
             c1='王';
    // 把c1转换为int类型
    int c2=(int)c1;
    System.out.println(c2);
 // char 也是16位,范围 0~65535 因为不需要负数
    System.out.println((char)(45555));
 // unnicode 编码,\ u 4位十六进制整型值 0~f
    char c3 ='\u4e00';
    c3='\u9fa5';
    System.out.println(c3);

  // 布尔型 不能参与转换
        // 低精度到高精度 可以自动类型转换
        // 高精度 到低精度 需要强制类型转换
        byte b1 = 13;
        short s1 = b1;
        int i1 = s1;
        long l1 = i1;
        // 浮点型 采用科学计数法进行存储
        // 所以  float的32位  可存储的数据量远大于 long的64位
        System.out.println(Long.MAX_VALUE);
        // 9223372036854775807
        float f1 = 92233720368547758072231231241231231212.2F;
        System.out.println(f1);
        f1=l1;
        double d1 =f1;
        // byte --> short --> int --> long --> float --> double  是自动类型转换,反之则需要强制类型转换
        //     char --> int --> long --> float --> double
        short s2 = 129;
        // 高到低,需要强制类型转换,  (类型)
        // 强制类型转换有可能损失精度,导致数据不正确
        byte b2 = (byte) s2;
        System.out.println(b2);
        // -----
        System.out.println(Integer.toBinaryString(-265));
        // -265 1111111011110111
        // 
        // 1111111011110111  -265二进制
        //  当不考虑符号位时  对应的是 65271
        // 正数转换为char是,是忽略负数的,会把响应负数的二进制转换为对应的正数,然后再进行ASCII码
    char c1 =(char)-265;
    System.out.println(c1);
    System.out.println((char)65271);
    char c2 ='a';
    int i3 =c2;
    System.out.println(i3);

// 布尔型 不能参与运算
        byte b1 = 2;
        int i1 = 10;
        long l1 = 11L;
        // 当进行多类型混合运算时,结果为参与运算的最大类型
        long result = b1 + i1 + l1;
        // 当混合运算类型 只出现了 byte short int char 四种类型时
        // 任意一种或多种进行运算,结果一定是int类型 (可以理解为,混合运算,结果为参与运算的最大类型,但最低也是int类型)
        byte b2 = 1;
        byte b3 = 1;
        int b4 = b2 + b3;
        char c1 = 'a';
        int c2 = c1 + b2;
        System.out.println(c2); 

    // 常量:生命周期中,值不能修改,但是可以复用
        final int i = 2;
        // i = 3;
        // 字面量,占用临时空间存储,数字 默认是int
        // 并且不能复用,只能临时使用一次,由于没有找到的路径,所以压根也不能修改
    System.out.println(123);

// 局部变量
        int i = 2;
        // 局部变量调用,在方法中,直接写变量名调用,方法外 调用不了
        System.out.println(i);
        // 静态变量调用,使用类名.静态变量名,需要考虑权限修饰符
        System.out.println(Y6.a);
        // 如果在类中调用当前类的静态变量,类名也可以省略
        System.out.println(a);
        // 创建对象
        Y6 obj = new Y6();
        System.out.println(obj.b);

public class Y7 {
    static int a ;
    static double d;
    static char c;
    static boolean b;
    static  Y7 xY7 ;
    

    public static void main(String[] args) {
        // 局部变量,不赋值不能使用,没有默认自
                int i;
                // System.out.println(i);
                // 整数 默认 0
                System.out.println(a);
                // 小数 默认 0.0
                System.out.println(d);
                // 字符型 默认 \u0000
                System.out.println(c);
                // 布尔型 默认值 false
                System.out.println(b);
                // 引用类型默认值 null
                System.out.println(xY7);


 public class Y8 {
    static int a = 2;
    public static void main(String[] args) {
        int a = 3;
        // 同名后,优先使用局部变量
        System.out.println(a);
        // 如何区分同名的局部变量和静态变量呢?  类名
        System.out.println(Y8.a);       

    System.out.println(10 + 3);
        System.out.println(10 - 3);
        System.out.println(10 * 3);
        // 由于都是整数,所以结果也是整数 3
        System.out.println(10 / 3);
        // 由于3.0是double 所以结果是 double 3.3333335
        System.out.println(10 / 3.0);
        // 由于10和3都是整数,所以得 3 , 由于 1.0是double,所以 得 4.0
        System.out.println(10 / 3 + 1.0);
        // 余数
        System.out.println(10 % 3);
        // =====================
        // ++ : 自身+1, 把值取出来+1在放回去 , i++ 就等于 i=i+1
        int i = 10;
        i++;
        ++i;
        // 如果 i++ 和 ++i 单独出现,则没有区别, 直接自身+1 完事
        System.out.println(i);
        // 如果 在混合运算中 i++ 和 ++i 就有区别了
        // i++ 先赋值 后 + 1(i的值,是+1之前的值)
        // ++i 先+1 后赋值 (i的值,是+1之后的值)
        i = 10;
        i = i++;
        // i = i++; i = 10
        // i = 10++; i = 10
        // i = 10; i = 11
        // i = 10;
        // ++ -- 属于一元运算, 一元优先级大于二元
        i = i++ + i;
        // i = i++ + i; i = 10
        // i = 10++ + i; i = 10
        // i = 10 + i; i = 11
        // i = 10 + 11; i = 11
        // i = 21; i = 11
        // i = 21;

        i = 10;
        i = ++i + i;
        System.out.println(i);

        int x = 3;
        int y = x + x++ + ++x + ++x + x++ + x;
        // int y = 3 + x++ + ++x + ++x + x++ +x; x = 3;
        // int y = 3 + 3 + ++x + ++x + x++ +x; x = 4;
        // int y = 3 + 3 + 5 + ++x + x++ +x; x = 5;
        // int y = 3 + 3 + 5 + 6 + x++ +x; x = 6;
        // int y = 3 + 3 + 5 + 6 + 6 +x; x = 7;
        // int y = 3 + 3 + 5 + 6 + 6 +7; x = 7;
        System.out.println(y);
        System.out.println(x);
        int a = 10;
        a = a++ + ++a + (a++ - 10) * a;
        // a = 48; a = 13
        System.out.println(a);

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值