Day02 - Java 基础②
## 任务
1.  数据类型
2.  运算符
3.  流程控制语句
4.  Scanner 和 Random
## 数据类型
1. 基本类型
   1.  整数类型
      1.  byte         稀有物种,传输,读取文本内容, 也不怎么用
      2.  short       濒临物种 —— 基本没有人用
      3.  int             大路货 —— 经常使用
      4.  long          幕后 —— 当大路货无法承受的时候,long就出现代替int来接受对应的内容
   2.  浮点类型
      1.   float    单精度浮点类型    6~7位
      2.  double     双精度浮点类型        15~16位
   3.  字符类型
      1.   char          由单引号所引起来的内容,且只有一位
      ```java
      char c1 = 'a';
      char c2 = 'A';
      char c3 = '中';
      char c4 = '&';
      char c5 = '0'; // 0~9
      ```
      2.  字符类型其实也是整数类型
   4.  布尔类型
      1.  boolean   true & false
      2.  八大基本类型中,唯一一个不能够算术计算的类型
2.  引用类型
   含义: 除了八大基本类型以外的所有类型都被称呼为引用类型
   1. String —— 字符串类型,是引用类型之一
      使用: 通过双引号引起来的内容,其中长度接近于无限
      内容: 阿拉伯数字,英文大小写, 符号等等
   ```java
   String str = "abc";
   System.out.println(str); // abc
   
   String s1 = "ja";
   String s2 = "va";
   System.out.println(s1+s2); // java
   ```
   2.  String类型的功能
      1.  length():                    显示字符串的长度
      2.  trim():                        除去字符串中首尾空格
      3.  charAt(int index): 显示index位置上的字符(char)
      4.  equals(String otherString):
                     比较当前字符串与otherString的值是否相同                  
2. Scanner —— 扫描器
   格式: Scanner 变量名称 = new Scanner(System.in)
   含义: 创建扫描器
   作用: 允许控制台可以接受用户所输入的内容
   功能: 
   next()              允许控制台输入数据,并把数据截取成String类型
   nextInt()        允许控制台上输入数据,并把数据截取成int类型
   nextDouble()    允许控制台上输入数据,并把数据截取成double类型
### char类型
 1. char类型是由单引号引起的内容组成,且位置只能有一位
 2. char类型也是特别的整数类型,char拥有对应的int码值
    例如: 'a' --> 97
              'b' --> 98
              '@' --> 64
    3.  char类型中由于都是字符,所以对应的int码值是没有负数,都为正整数,范围0~65535
### 默认的小数类型和整数类型
     1. 默认的整数类型: int
     2. 默认的小数类型: double
     3.  只要出现的是整数,一定是int类型
     4.  只要出现的是小数,一定是double类型
### 声明变量
    数据类型 变量名称 = 初始值;
        int          a          =    10;
                boolean   b      =      true;
#### 赋值号的作用
    作用: 把符号右边的值传递给符号左边的变量
    使用条件: 符号右边的类型精度必须小于等于
                符号左边的类型精度
### 基本类型中精度的问题
 1. 整数类型中,分别是byte, short, int, long,这四个类型范围从高到低的排序?
    long, int, short, byte
    2.  小数类型中,分别是float, double, 这两个类型范围从高到低排序?
    double, float
    3.  请问,在数据中会分整数和小数,精度高的是哪个类型?
    小数精度高
    4.  基本类型中,对于类型精度的排序,从高到低?
    double, float, long, int, short, byte
                                                      char
```java
int a = 10;
double d = 10;
int i = (int)3.1;  // 对3.1的数值,进行了强行转换
System.out.println(i); // 3
int i2 = (int)3.9999999;
System.out.println(i2); // 3
```
### long & float类型
    long什么时候会使用?
        当int类型无法承受的时候,long类型就可以使用了
    long如何使用?
        long的精度比int高, 默认的类型又是int类型,从int类型转向long类型是无法进行强行转换的,直接在数据后面添加字母L,大小写都可以,但是强烈建议使用大写
    float类型一般使用比较少,但是若客户指明使用该类型的话,则直接在小数后添加F字母,大小写都可以
```java
long l = 9999999999L;
float f = 3.14F;
double d = 3.14D;
```
### 基本类型的转换
1. 自动类型转换
   对于基本类型中, byte, short, char类型都拥有自动类型转换,只要输入的整数不超过这三个类型,则都会自动转型成对应的类型,若出现了运算,则会自动先变成int类型,在进行运算,运算结果不再拥有自动转型的功能
``` java
byte b1 = 1;
byte b2 = 2;
byte b3 = (byte)(b1 + b2);
System.out.println(b3); // 3
```
2. 强行类型转换
   从高精度类型转向低精度类型的过程,简称:强转
   这样的操作由于会损失精度,所以不建议经常使用
```java
int i = (int)9999999999L; // 从long类型转向int类型
int i1 = (int) 3.14; // 从double类型转向int类型
float f = (float)3.14; //  从double类型转向float类型
```
## 运算符
1.  算数运算符
```java
+ - * / % ++ -- +
    
/ --> 5/3 --> 1
         5/4 --> 1
         5/2 --> 2
         6/3 --> 2
         7/4 --> 1
% --> 5%2 --> 1
           6%3 --> 0
        6%0 --> 报错   / by zero
        100%1000 --> 100
```
注: 使用算数运算符,同种类型使用,结果类型不变
    不同类型使用,结果跟着精度高的
++ --    自增1, 自减1
例如: int a = 1;
        System.out.println(a); // 1
        a++; // 后自增, 先运算当前代码,后自增1
        System.out.println(a); // 2 
        int b = 10;
        ++b; // 前自增, 先自增1, 再执行当前的代码
        System.out.println(b); // 11
\+ 不是加法的加,而是拼接, 拼接两个不同类型的内容
    基本类型中分: 布尔类型, 数字类型
    适用于基本类型与引用类型或者引用类型与引用类型
```java
String s1 = "ja";
String s2 = "va";
int a = 1;
System.out.println(s1+s2+a); // java1
int b = 2;
System.out.println(b + s1 + s2); // 2java
System.out.println(s1+a+b+s2); // ja12va
```
2.  赋值运算符
    =   += -= *= /= %=
```java
int a = 10; 
++ --> 自增1
+= --> 自增n
a += 1000; // a = a + 1000;
System.out.println(a); // 1010
a -= 100; // 910
a *= 10; // 9100
a /= 10000; // 0
a %= 100; // 0
```
2.  比较运算符
```java
> >= < <= 
 !=        不等于
 ==           等于
 通过比较运算符,得到的结果为boolean类型的值,true和false
 
 10 != 10   --> false
  5 >= 5     --> true
```
2. 逻辑运算符
```java
&&    与/逻辑与/短路与
作用: 连接多个表达式
效果: 
    int a = 10; int b = 20;
    System.out.println(a+b > 30 && a - b < 20);
结果: 符号左右两边的表达式的结果都为true的时候,结果才为true
        当符号有一边为false的时候,结果为false
       符号左边已经为false, 则右边就不用考虑了
    
 ||         或/逻辑或/短路或
 作用: 连接多个表达式
 效果: 
     int a = 10; int b = 20;
    System.out.println(a != b || a > b);
结果: 符号左右两边的表达式只要有一边为true,则结果为true
        当符号两边都为false的时候,结果才为false
        符号的左边已经为true, 则右边就不会在考虑了
    
 !       非、取反
     !false --> true
       !true --> false
       !(5>3) --> false
       !(10<11) --> false
       !(10/3<5) --> false
       !(9!=10) --> false
       !(10!=10) --> true
    
    
 表达式:  含有数字、字母以及符号做组成的一个式子
 int a = 10;
 a >= 5;   true
```
2.  三目/三元/条件运算符
   公式: 表达式 ? 表达式1 :  表达式2
   含义: 当表达式的结果为true的时候,则执行表达式1
           当表达式的结果为false的时候,则执行表达式2
   表达式1和表达式2的结果类型需要一致
```java
int a = 200;
int b = 150;
String result = a > b ? "老蔡重" : "班花重";
System.out.println(result);
```
练习1:需要定义两个值,来显示哪个值比较大
练习2: 在控制台上输入两个值,来判断哪个值比较大?
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 提示用户输入第一个值 System.out.print("请输入第一个值: "); double value1 = scanner.nextDouble(); // 提示用户输入第二个值 System.out.print("请输入第二个值: "); double value2 = scanner.nextDouble(); // 关闭scanner对象 scanner.close(); // 比较两个值并输出结果 if (value1 > value2) { System.out.println("第一个值(" + value1 + ")比第二个值(" + value2 + ")大。"); } else if (value1 < value2) { System.out.println("第二个值(" + value2 + ")比第一个值(" + value1 + ")大。"); } else { System.out.println("两个值相等: " + value1); } } }
练习3: 在控制台上输入一个值,判断该值是否是偶数?
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 提示用户输入一个值 System.out.print("请输入一个值: "); int number = scanner.nextInt(); // 判断是否为偶数 if (number % 2 == 0) { System.out.println(number + " 是偶数。"); } else { System.out.println(number + " 是奇数。"); } // 关闭scanner对象 scanner.close(); } }
## JDK工具中含有的内容
1. JDK
   1.  JRE
   2.  编写、测试、维护的功能 —— 针对编写代码使用
2. JRE 
   1.  JVM
   2.  所有Java的工具包以及对应的环境
3. JVM —— 执行代码的虚拟机 —— 就是执行.class文件(字节码文件)
## Eclipse的使用
1.  Project为单位
   1.  Folder -- 目录 -- package
      1.  Class
所有的视图框 :
    window --> show view
切换工作空间:
    File --> switch workspace --> 历史目录以及other(可以新建新目录)
修改字体风格:
    window --> preferences --> 五个一
运行代码的方式:
     1. ctrl + F11
     2. 直接点击工具条上的播放按钮
     3.  右击代码区域,找到run as, 点击 Java Application
创建新的文件,来书写命令
 1.  在空的package explorer中,右击,点击New,找到Java Project
 2.  去书写该Java项目的名称, finish
 3.  点开项目之后,去右击src, 点击New, 点击package,定义package的名称
    书写格式: 公司域名结尾.项目名称.公司名称.作用
                cn.hc.day02
    4.  右击点击package名称,点击New, 找到class —— .java文件
注释: 告知某段代码的含义,但不会在执行的内容中出现,且可以写上任意内容
1.  单行注释  //
2.  多行注释 /* */
3.  段落/文本注释 /** */ —— 告知使用者的作用
## 作业
1.  在控制台上分别输入,自己的姓名、年龄、以及性别,用一个print打印所有信息
2.  在控制台上分别输入三个不相同的数字,比较哪个数字是最大的
3.  在控制台上分别输入年份和月份,计算从1900年1月至输入的时间一共经过了多少月
4.  在控制台上分别年份,显示该年是否是闰年
5.  在控制台上输入数字,显示该数字是否是能够被130整除的
6.  在控制台上分别输入两个数字,显示这两个数字之间的加减乘除
7.  在控制台上输入月薪以及季度奖金,显示当年年薪
8.  在控制台上输入班花的三围,显示班花是否是美女
9.  在控制台上输入一个数字,把该数字转换成字符串
10.  在控制台上输入到公司来的时间,计算一天的来回一共需要消耗多少毫秒
1个小时30分钟 --> 90分钟 --> 5400秒 --> 5400000 毫秒
24小时 --> 1440分钟 --> 86400秒 --> 86400000 毫秒
Day02 【Java基础②】链接:
- 
链接:https://pan.baidu.com/s/1Lj4uFQnZJVEULxMZE8KB1Q 
 提取码:ajar
Note:
 欢迎点赞,留言,转载请在文章页面明显位置给出原文链接
 知者,感谢您在茫茫人海中阅读了我的文章
 没有个性 哪来的签名!
 详情请关注点我
 持续更新中
 
 
© 2021 05 - Guyu.com | 【版权所有 侵权必究】

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号