## 任务

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

Day02 - Java 基础②的更多相关文章

  1. day02 Java基础

    1.Java中的关键字都是小写的. 2.Java中的关键字 3.Java中的注释分为:单行注释.多行注释.文档注释 文档注释将被javadoc工具解析生成一个说明书. 4.Java中的常量分为字面值常 ...

  2. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  3. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  4. 【JAVA面试题系列一】面试题总汇--JAVA基础部分

    JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...

  5. 最适合作为Java基础面试题之Singleton模式

    看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...

  6. java基础练习 字符串,控制流,日历,日期等

    1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...

  7. Java基础知识【下】( 转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  8. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  9. java基础学习03(java基础程序设计)

    java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...

  10. Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

随机推荐

  1. 学习spring cloud记录12-Feign常用自定义配置

    前言 Feign被springboot自动装配,但是Feign也提供了可自定义修改配置,常用的修改是修改日志级别等,下面记录常用的配置. 知识 Feign常用自定义配置 类型 作用 说明 feign. ...

  2. Kamailio 5.8.3与rtpengine双网卡SBC集成要点

    本文档总结了将Kamailio 5.8.3与rtpengine(配置为双网卡模式)集成以实现SIP+RTP媒体流转发(包括音视频和RTCP)的关键配置要点和最佳实践.用户场景包括:无NAT.公私网双向 ...

  3. CF1928E Modular Sequence 题解

    CF1928E Modular Sequence 考虑合法的答案的构成为一个 \(x,x+y,\dots x+ky\) 的块加上若干个 \(x\bmod y,x\bmod y+y,\dots x\bm ...

  4. 前端开发系列121-进阶篇之defineProperty

    本文介绍`Object.defineProperty()`方法,并基于此简单讨论数据劫持的实现方案. defineProperty Object.getOwnPropertyDescriptor(ta ...

  5. leetcode 468 验证IP地址

    简介 使用优雅的正则表达式 5种情况 情况: 块只包含一位数字,范围是 0 到 9. 块包含两位数字,第一位的范围是 1 到 9,第二位是 0 到 9. 块包含三位数字,且第一位为 1.第二.三位可以 ...

  6. ICEE-Bluetooth-5.4(PwAR超级节能长期无连接双向通讯)/5.3/5.2/5.1/5.0/4.0/3.0

    https://cn.silabs.com/blog/the-new-bluetooth-5-4-what-you-should-know-first Bluetooth Core Specifica ...

  7. 【电脑技巧】CPU正常运行时间过长,怎么解决?--九五小庞

    1.问题描述不少同志都遇到过这样的问题:按[Ctrl + alt + delete]打开任务管理器,切到"性能"选项卡下,发现自己电脑的CPU正常运行时间竟然为好几十天!很多人担心 ...

  8. Win11正式版网络错误访问提示0x800704cf的问题

    有深度技术的用户在win11正式版系统电脑中出现网络错误提示0x800704cf错误代码,那么如何解决这个问题?接下来,深度官网小编为大家带来详细的解决方案,大家可以一起来看看. 当 Win11 正式 ...

  9. 分享一个国内可免费使用的ChatGPT网站,免费无限制,写论文必备,支持AI绘画

    背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具,近期的热度直接沸腾. 作为一个AI爱好者,翻遍了各大基于ChatGPT的网站,终于找到一个免费!免登陆!手机电脑通用!国内可直接对话的C ...

  10. VHC - 一款基于 vue3 的移动端日期、时间选择插件 功能丰富 文档细致

    vue3-hash-calendar 基于 vue3 的移动端日历组件 文档网站    更新日志 效果图 仓库地址 github:https://github.com/TangSY/vue3-hash ...