Java学习笔记(day01)

注释

  • 单行注释: // 注释行
  • 多行注释: /* 注释文本 */
  • 文档注释: /** 注释文本 */

编译型 , 解释型

通过一个小例子来解释一下这两个名词, 现在有一本中文的小说, 有个外国人想看这本小说, 他肯定看不懂, 此时有两种方案:

  • 把这本书翻译成他能看懂的语言 ---------> 编译 ---------> 比如执行 javac test.java, Java编译器会编译这个文件,生成一个test.class, 然后由JVM去解释执行这个test.class.

  • 请一个能看懂这本小说, 能和他交流沟通的人, 讲给他听(假如他很有钱) -------> 执行速度依赖硬件的条件,现在硬件都特别好, 所以影响很小.

    java是一门既有编译型, 又有解释型的语言.


数据类型

Java 是一种强类型的语言, 对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间.

基本数据类型: 分为四类八种

整型

  • byte 1字节(1B(字节) = 8bit; 1KB = 1024B; 1MB = 1024KB)
  • short 2字节
  • int 4字节 (进制问题: 我们平时使用的是十进制; 0开头的是八进制; 0x开头的是16进制, 0b开头的是二进制)
public class Hello{
   public static void main(String[] args) {
       int i1 = 10; // 十进制
       int i2 = 010; // 八进制
       int i3 = 0x10; // 16进制
       int i4 = 0b10; // 二进制
       System.out.println(i1);
       System.out.println(i2);
       System.out.println(i3);
       System.out.println(i4);
   }
}
输出结果:
10
8
16
2
Process finished with exit code 0
  • long 8字节
拓展: 不同数据类型的整型数字运算, 计算结果: 如果含有long,就为long类型,没有long都是int类型.

浮点型

  • float 4字节 (代码中尽量不要使用float类型的变量去做比较, 本身精度不高, 银行类的业务可以使用BigDecimal工具类)
  • double 8字节

字符型

  • char 2字节 (所有的字符本质还是数字)

布尔型

  • boolean 1字节 (true/false)

引用数据类型:三种

  • 类(class)
  • 接口(interface)
  • 数组([])

类型转换

  • 隐式转换
取值范围小的数据类型与取值范围大的数据类型进行运算时,会先将小的数据类型提升为大的,再做运算 
byte,short,char --> int --> long --> float --> double
  • 强制转换
public class Hello{
    public static void main(String[] args) {
        /* 强制转换:
        目标类型 变量名 = (目标类型) (被转换的数据).
        不建议强制转换,因为会有精度的损失.
        byte类型只能表示-127-128, b4的计算结果130在这个范围外, 强制转换为byte时就产生了错误的结果.
        */
        int i1 = 10;
        byte b1 = 20;
        byte b2 = 120;
        byte b3 = (byte) (i1 + b1);
        byte b4 = (byte) (i1 + b2);
        System.out.println(b3);
        System.out.println(b4);
    }
}
输出结果:
30
-126
Process finished with exit code 0

变量类型

变量的定义格式:

数据类型 变量名 = 初始化值;
String s1 = "world";
public class Hello{
    /*
    常量: 定义后不能更改, final修饰
     */
    final String DB = "2500";
    /*
    类变量: static修饰
     */
    static String s = "world";
    /*
    实例变量: 属于这个对象,可以不给初始值, 默认值:整型: 0; 浮点型: 0.0; boolean: false; 其他的都是null.
     */
    String str; // 实例变量
    public void hello(){
        /*
        局部变量, 必须给初始化的值, 仅在hello方法内部可用
         */
        String s1 = "world";
    }
    public static void main(String[] args) {
    }
}