Java语言 day02

Java 入门篇

Java程序的运行机制

了解什么编译型语言,什么是解释语言;

编译型:编译整块代码,产生一个目标代码(文件),执行目标代码(文件);

解释型:解释一段代码,执行一段代码;

程序运行机制

Java程序运行图如下:

 

 

 

【上图为一个简单的流程图,如需更详细的流程图,请自行百度】;



IDEA开发

了解什么是IDE

IDEA安装

IDEA官网:IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains

【该软件需付费,可以选择使用免费版,还有另一种方法(...)。如果觉得麻烦,可下载eclipse,去官网下载即可;】

具体安装步骤及配置:

【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

或者百度安装及配置步骤;

IDEA编写程序

  1. 在本地创建一个固定的存放代码的目录;

  2. 使用IDEA新建一个项目,选定第一步创建的文件夹为项目本地存放目录;

  3. 创建一个.class文件,编写代码,最后执行测试;

运行结果:

 

 

 




Java基础篇

注释

注释即解释,用以解释一段代码的主要含义或者用途;

注释不会被执行,只用于给人来看;

养成一个良好的写注释的习惯

Java中的注释

单行注释

//注释内容

多行注释

/*
注释内容1
注释内容2
*/

文档注释

/**
*注释内容A
*注释内容B
*/

【单行与多行注释常用】



标识符

关键字

 

 

 

Java中所有组成部分都需要一个名字。包括类名、变量名和方法名,这些都被称为标识符。

标识符注意点

  • 所有标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始。(首字母)

  • 首字母之首可以是字母(A-Z或者a-z),美元符($),或者下划线(_)或数字的任何字符组合。

  • 不能使用关键字作为变量名或方法名。

  • 标识符是大小写敏感的。(即严格区分大小写)

  • 合法标识符举例:age、$salary、_value、__1_name;

  • 非法标识符举例:123abc、-value、#name;

  • 可以使用中文命名,但是一般不建议这样去使用,建议使用拼音

 

 

 



数据类型

强类型语言

要求变量的使用严格符合规定,所有变量都必须先定义后才能使用。

Java语言即强类型语言。

弱类型语言

变量使用无严格规定;如一些脚本语言,JavaScript等;

Java的数据类型分为两大类

基本类型(Primitive type)

引用类型(reference type)

 

 

代码如下:

public class DataType01 {
   public static void main(String[] args) {
       //八大基本数据类型

       //整数
       int num1 = 10;                //最常用
       byte num2 = 20;
       short num3 = 30;
       long num4 = 30L;              //Long类型要在数字后面加L

       //小数:浮点数
       float num5 = 50.1F;          //float类型要在数字后面加个F
       double num6 = 3.14159265358;

       //字符
       char name = '中';
       /*字符串,String 不是关键字,是一个类;
       String country = "中国";*/

       //布尔型:是/非
       boolean flag = true;
//       boolean flag = false;
       System.out.println(num1);
       System.out.println(num2);
       System.out.println(num3);
       System.out.println(num4);
       System.out.println(num5);
       System.out.println(num6);
       System.out.println(name);
       System.out.println(flag);

  }
}

运行结果:

 

  

数据类型扩展及思考

(请仔细读注释内容)

直接上代码:

public class Datatype02 {
   //在了解前面的基础上进行扩展,去思考一下代码;

   public static void main(String[] args) {
       //整数类型扩展: 进制: 二进制0b、 八进制0、十进制、十六进制0x;
       int i1 = 10;
       int i2 = 0b10;
       int i3 = 010;
       int i4 = 0x10;
       System.out.println(i1);
       System.out.println(i2);
       System.out.println(i3);
       System.out.println(i4);
       System.out.println("======================================================");
       /*浮点数扩展
       * =========================
       * 日常生活中,银行业务怎么表示?
       * 使用BigDecimal 数学工具类
       * =======================
       * 如果使用float与double会怎么样?
       * float 是有限的,离散的,有舍入误差,是大约,接近但不等于;
       * double
       * 得出结论 最好完全避免使用浮点数进行比较!!!
       * 得出结论 最好完全避免使用浮点数进行比较!!!
       * 得出结论 最好完全避免使用浮点数进行比较!!!
       * */
       float f = 0.1f;     //0.1
       double d = 1.0/10;  //0.1
       System.out.println(f==d);  //false

       float f1 = 121123123f;
       float f2 = f1+1;
       System.out.println(f1==f2); //ture
       System.out.println("============================================================");

       //字符类型扩展
       char c1  = 'z';
       char c2 = '中';
       System.out.println(c1);
       System.out.println((int)c1);//强制转换为int型

       System.out.println(c2);
       System.out.println((int)c2);//强制转换为int型
       /* 为什么会出现上面代码运行结果的情况?
        * 因为所有的字符本质上还是数字(在计算机内部)
        * 如 Unicode编码,2字节,0~65536,区间 U0000~UFFFF
        * */
       char c3 = '\u0061';
       System.out.println(c3);//a

       /*转义字符
       * \t 制表符
       * \n 换行符
       * \\ 反斜杠
       * ...*/
       System.out.println("Hello\tWorld");
       System.out.println("Hello\nWorld");
       System.out.println("==========================================================");

       /*字符串扩展
       * 学习对象后,从内存方面分析*/
       String sa = new String("Hello World");
       String sb = new String("Hello World");
       System.out.println(sa==sb);

       String sc = "Hello World";
       String sd = "Hello World";
       System.out.println(sc==sd);

       /*布尔类型扩展
       * if判断默认值为true,所以无需写出条件*/
       boolean flag = true;
       if (flag==true){
           System.out.println("我爱中国!");
      }
       if (flag){
           System.out.println("我爱中国!");
      }

  }
}

运行结果:

 

 

 

类型转换

  1. 由于Java是强类型语言,所以要进行一些运算时,需要用到类型转换。

 

 

 

  1. 运算中,不同类型的数据先转化为同一类型,然后进行运算。

  • 强制类型转换

  • 自动类型转换

代码演示:

public class DataType03 {
   /*类型转换的几个注意点
   * 1.不能对布尔值进行转换
   * 2.不能把对象类型转转为不相干类型
   * 3.在把高容量转换的低容量的时候,强制转换
   * 4.转换的时候可能存在内存溢出,或者精度问题
   * */

   public static void main(String[] args) {
       int i = 128;
       byte b = (byte)i; //强制类型转换: (类型)变量名 自高到低;
       double d =i;      //自动类型转换: 低到高;
       System.out.println(i);
       System.out.println(b);
       System.out.println(d);
       System.out.println("======================");
       System.out.println((int)23.45);

       System.out.println("=======================");
       char c = 'z';
       int a = c-1;
       System.out.println(a);
       System.out.println((char)a);
  }
}

运行结果:

 

 

 

 

  • 转换时内存溢出

代码演示:

public class DataType04 {
   public static void main(String[] args) {
       //操作比较大的数的时候,注意溢出问题、
       //JDK7新特性,数字之间可以用下划线_进行分割;
       int money = 10_0000_0000;
       int years = 20;
       int total1 = money*years; // -1474836480,计算的时候溢出了
       long total2 = money*years; // 因为计算时默认为int型,溢出早已发生;
       long total3 = (long)money*years;//强制类型转换

       System.out.println(total1);
       System.out.println(total2);
       System.out.println(total3);
  }
}

运行结果:

 

 

posted @ 2021-05-15 19:46  noerro  阅读(293)  评论(0)    收藏  举报