Java SE 学习记录02

@学习记录

开始学习Java

遵从同学的指导,从Java se开始学习

黑马的JavaSE零基础入门

day02-01 数据类型转换

public class HelloWorld {  
    public static void main(String[] args) {
        /*
        当数据类型不一样时,将发生数据类型转换

        自动类型转换(隐式)
        1.特点:代码不需要进行特殊处理,自动完成
        2.规则:数据范围从小到大

        强制类型转换(显示)
         */
        System.out.println(1024); // 这是一个整数,默认是int
        System.out.println(3.14); // 这是一个浮点数,默认是double

        // 左边是long类型,右边是默认的int类型,左右不一样
        // 一个等号代表赋值,将右边的int常量,交给左边long变量进行存储
        // int --> long,符合数据范围从小到大的要求
        // 这一行代码发生了自动类型转换
        long num1 = 100;
        System.out.println(num1); // 100

        // 左边是double类型,右边是float类型,左右不一样
        // float --> double,符合数据范围从小到大的要求
        // 也发生了自动类型转换
        double num2 = 2.5F;
        System.out.println(num2); // 2.5

        // 左边是float类型,右边是long类型,左右不一样
        // long --> float,符合数据范围从小到大的要求
        // 也发生了自动类型转换
        float num3 = 30L;
        System.out.println(num3); // 30.0

        /*
        强制类型转换
        1.特点:代码需要进行特殊的格式处理,不能自动完成
        2.格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据

        注意事项:
        1.强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出
        2.byte/short/char这三种类型都可以发生数学运算,例如加法
        3.byte/short/char这三种类型在运算的时候,都会被首先提升为int类型,然后再计算
        4.boolean类型不能发生类型转换
         */
        // 左边是int类型,右边是long类型,左右不一样
        // long --> int,不符合数据范围从小到大的要求
        // 不能发生自动类型转换
        int num4 = (int)100L;
        System.out.println(num4);

        int num5 = (int)6000000000L;
        System.out.println(num5); // 1705032704 数据溢出

        // double --> int,强制类型转换
        int num6 = (int)3.5;
        System.out.println(num6); // 3 精度损失,不是四舍五入,所有的小数位都会被舍弃掉

        char zifu1 = 'A'; // 这是一个字符变量,里面是大写字母A
        System.out.println(zifu1+1); // 66,也就是A被当成了65
        // 计算机的底层会用一个数字代表字符A,就是65
        // 一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为一个数字

        byte num7 = 40; // 注意,右侧的数值大小不能超过左侧的类型范围
        byte num8 = 50;
        // byte + byte --> int + int --> int
        int result = num7 + num8;
        System.out.println(result); // 90

        short num9 = 60;
        // byte + short --> int + int --> int
        // int强制转换为short,必须保证逻辑上真实大小本来就没有超过short范围
        short result2 = (short)(num7 + num9);
        System.out.println(result2); // 100
    }
}


day02-04 ASCII编码表

48 - ‘0’
65 - ‘A’
97 - ‘a’


day02-05 算术运算符_四则运算与取模运算

public class HelloWorld {  
    public static void main(String[] args) {
        /*
        运算符:进行特定操作的符号
        表达式:用运算符连起来的式子

        四则运算:
        加:+
        减:-
        乘:*
        除:/

        取模(取余数):%

        首先计算得到表达式的结果,然后再打印输出这个结果
        对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果仍然是整数,只看商,不看余数
        只有对于整数的除法来说,取模运算符才有余数的意义

        注意事项:
        1.一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种
         */

        // 两个常量之间可以进行数学运算
        System.out.println(20+30);

        // 两个变量之间也可以进行数学运算
        int a = 20;
        int b = 30;
        System.out.println(a-b); // -10

        // 变量和常量之间可以混合使用
        System.out.println(a*10); // 200

        int x = 10;
        int y = 3;
        int result = x / y;
        System.out.println(result); // 3

        int result2 = x % y;
        System.out.println(result2); // 1

        // int + double --> double + double --> double
        double result3 = x + 2.5;
        System.out.println(result3); // 12.5
    }
}


day02-06 算术运算符_加号的多种用法

public class HelloWorld {  
    public static void main(String[] args) {
        /*
        四则运算中,加号有三种常见的用法:
        1.对于数值而言,是加法
        2.对于字符char类型而言,在计算前,char会被提升成int,然后再计算
        3.对于字符串String(首字母大写,并不是关键字)而言,代表字符串的连接操作
        任何数据类型和字符串进行连接的时候,结果都会变成字符串
         */

        // 字符串类型的变量基本使用
        // 数据类型 变量名称 = 数据值;
        String str1 = "Hello";
        System.out.println(str1); // Hello
        System.out.println(str1 + "World"); // HelloWorld

        String str2 = "Java";
        // String + int --> String
        System.out.println(str2 + 20); // Java20

        // 优先级问题
        // String + int + int
        // String       + int
        // String
        System.out.println(str2 + 20 + 30); // Java2030

        System.out.println(str2 + (20 + 30)); // Java50
    }
}


day02-07 算术运算符_自增自减运算符

public class HelloWorld {  
    public static void main(String[] args) {
       /*
        自增运算符:++
        自减运算符:--

        使用方式:
        1.单独使用
        2.混合使用

        使用区别:
        1.单独使用时,前++和后++没有任何区别
        2.在混合使用时,有【重大区别】
            A.如果是【前++】,那么变量立刻加一,再使用【先加后用】
            B.如果是【后++】,那么先使用变量本来的数值,再让变量+1【先用后加】

         注意事项:
         只有变量才能使用自增、自减运算符,常量不可发生改变,不能用
         */

        int num = 10;
        System.out.println(num); // 10
        ++num;
        System.out.println(num); // 11
        num++;
        System.out.println(num); // 12
        System.out.println("=================");

        // 和打印操作混合的时候
        int  num2 = 20;
        System.out.println(++num2); // 混合使用,先加后用,21
        System.out.println(num2); // 21
        System.out.println("=================");

        int num3 = 30;
        System.out.println(num3++); // 先用后加,30
        System.out.println(num3); // 31
        System.out.println("=================");

        // 和赋值操作混合
        int num4 = 40;
        int result1 = --num4;
        System.out.println(result1); // 39
        System.out.println(num4); // 39
        System.out.println("=================");

        int num5 = 50;
        int result2 = num5--;
        System.out.println(result2); // 50
        System.out.println(num5); // 49
        System.out.println("=================");

        int x = 10;
        int y = 20;
        int result3 = ++x + y--;
        System.out.println(result3); // 11+20=31
        System.out.println(x); // 11
        System.out.println(y); // 19
    }
}


day02-08 赋值运算符

package com;

public class Demo01 {
    public static void main(String[] args){
        /*
        赋值运算符分为:
        基本赋值运算符:=
        复合赋值运算符:
        +=   a += 1 相当于 a = a + 1
        -=   b -= 4 相当于 b = b - 4
        *=   c *= 5 相当于 c = c * 5
        /=   d /= 6 相当于 d = d / 6
        %=   e %= 7 相当于 e = e % 7

        注意事项:
        1.只有变量才能使用赋值运算符,常量不能进行赋值
        2.复合赋值运算符中隐含了一个强制类型转换
         */

        int a = 5;
        a += 5;
        System.out.println(a); // 10

        int x = 10;
        x %= 3;
        System.out.println(x); // 1

        byte num = 30;
        num +=5;
        // num = byte + int
        // num = int + int
        // num = num
        // num = (byte)int
        System.out.println(num); //35
    }
}


day02-09 比较运算符

package com;

public class Demo01 {
    public static void main(String[] args){
        /*
        比较运算符:
        >
        <
        >=
        <=
        ==
        !=

        注意事项:
        1.比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
        2.如果进行多次判断,不能连着写
         */

        System.out.println(10>5); // true
        int num1 = 10;
        int num2 = 12;
        System.out.println(num1 < num2); // true
        System.out.println(num2 >= 100); // false
        System.out.println(num2 <= 100); // true
        System.out.println("======================");

        System.out.println(10 == 10); // true
        System.out.println(10 != 20); // true
        System.out.println(10 != 10); // false
    }
}


day02-10 逻辑运算符

package com;

public class Demo01 {
    public static void main(String[] args){
        /*
        逻辑运算符
        与  &&
        或  ||
        非  !

        &&,||具有短路效果,如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能

        注意事项:
        1.逻辑运算符只能用于boolean值
        2.与、或需要左右各有一个boolean值,但是取反只要有一个boolean值
        3.与、或两种运算符,如果有多个条件,可以连续写
        
         */

        System.out.println(true && false); // false
        // true && true --> true
        System.out.println(3 < 4 && 10 > 5); // true
        System.out.println("======================");

        System.out.println(true || false); //true
        System.out.println(false || false); // false
        System.out.println("======================");

        System.out.println(true); // true
        System.out.println(!true); // false
        System.out.println("======================");

        int a = 10;
        // false && ... --> false
        System.out.println(3 > 4 && ++a < 100); // false
        System.out.println(a); // 10
        System.out.println("======================");

        int b = 20;
        // true || ... --> true
        System.out.println(3 < 4 || ++b <100); // true
        System.out.println(b); // 20
    }
}


day02-11 三元运算符

package com;

public class Demo01 {
    public static void main(String[] args){
        /*
        一元运算符:只需要一个数据就可以进行操作的运算符,例如:取反,自增,自减
        二元运算符:需要两个数据就才进行操作的运算符,例如:加法,赋值
        三元运算符:需要三个数据就才进行操作的运算符

        格式:
        数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;

        注意事项:
        1.必须同时保证表达式A和表达式B都符合左侧数据类型的要求(赋值时的要求,输出语句不要求)
        2.三元运算符的结果必须被使用(赋值或输出)
         */

        int a = 10;
        int b = 20;
        int max = a > b ? a : b;
        System.out.println("最大值:" + b);
        System.out.println(a > b ? a : b);
    }
}


day02-12 方法入门

package com;

/*
定义一个方法的格式
public static void 方法名称(){
    方法体
}

方法名称的命名规则和变量一样,使用小驼峰
方法体:大括号当中可以包含任何条语句

注意事项:
1.方法定义的先后顺序无所谓
2.方法的定义不能产生嵌套包含关系
3.方法定义后,不会执行,如果想执行,一定要对方法进行【调用】

如何调用方法,格式:

方法名称();
 */

public class Demo02 {
    public static void main (String[] args){
        farmer(); // 调用农民的方法
        seller(); // 调用商贩的方法
        cook(); // 调用厨子的方法
        me(); // 调用我的方法
    }

    // 农民伯伯
    public static void farmer(){
        System.out.println("播种");
        System.out.println("浇水");
    }

    // 小商贩
    public static void seller(){
        System.out.println("运输");
        System.out.println("抬价");
    }

    // 厨子
    public static void cook(){
        System.out.println("洗菜");
        System.out.println("切菜");
    }

    // 我
    public static void me(){
        System.out.println("吃");
    }
}

编译器的常量优化
赋值操作中,若等号右侧是若干个常量,编译器直接将计算得到结果。

注意事项:
一旦表达式中有变量参与,那么就不能进行这种优化了。

short a = 2;
short b = 3;
// short + short --> int + int --> int,左右数据类型不符
short result = a + b; // 编译报错
short result2 = 2 + 3; // 编译成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种广泛使用的编程语言,有简单、面向对象、跨平台等特点。下面是Java学习的一些重要知识点和学习笔记: 1. Java基础: - 数据类型:Java提供了多种数据类型,包括基本数据类型和引用数据类型。 - 控制流程:学习如何使用条件语句(if-else、switch)、循环语句(for、while)等控制程序的流程。 - 数组:了解如何声明、初始化和操作数组。 - 方法:学习如何定义和调用方法,以及方法的参数和返回值。 - 类和对象:理解类和对象的概念,学习如何定义类、创建对象和使用类的成员变量和方法。 - 继承和多态:掌握继承和多态的概念,了解如何使用继承创建子类,并实现方法的重写和多态的应用。 2. 面向对象编程: - 封装:学习如何使用访问修饰符(public、private、protected)来控制类的成员的访问权限。 - 继承:了解继承的概念和作用,学习如何使用extends关键字创建子类。 - 多态:理解多态的概念和实现方式,学习如何使用父类引用指向子类对象,实现方法的动态绑定。 3. 异常处理: - 异常的分类:了解异常的分类(Checked Exception和Unchecked Exception)和常见的异常类型。 - 异常处理机制:学习如何使用try-catch语句捕获和处理异常,以及使用throws关键字声明方法可能抛出的异常。 4. 输入输出: - 文件操作:学习如何读写文件,包括使用File类、字节流和字符流等。 - 序列化:了解对象的序列化和反序列化,学习如何将对象保存到文件或网络中。 5. 集合框架: - 学习Java提供的集合框架,包括List、Set、Map等常用的集合类,以及它们的特点和用法。 6. 多线程编程: - 学习如何创建和管理线程,了解线程同步和线程间通信的方法。 7. 数据库连接: - 学习如何使用Java连接数据库,执行SQL语句,进行数据的增删改查操作。 以上是Java学习的一些重要知识点和学习笔记,希望对你有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值