Day02


## 任务

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: 在控制台上输入两个值,来判断哪个值比较大?

练习3: 在控制台上输入一个值,判断该值是否是偶数?



## 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 | 【版权所有 侵权必究】




没有个性 哪来的签名!
原文地址:https://www.cnblogs.com/guyu-/p/14743008.html