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 | 【版权所有 侵权必究】
Day02 - Java 基础②的更多相关文章
- day02 Java基础
1.Java中的关键字都是小写的. 2.Java中的关键字 3.Java中的注释分为:单行注释.多行注释.文档注释 文档注释将被javadoc工具解析生成一个说明书. 4.Java中的常量分为字面值常 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
- 最适合作为Java基础面试题之Singleton模式
看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...
- java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- java基础学习03(java基础程序设计)
java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...
- Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)
线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...
随机推荐
- 学习spring cloud记录12-Feign常用自定义配置
前言 Feign被springboot自动装配,但是Feign也提供了可自定义修改配置,常用的修改是修改日志级别等,下面记录常用的配置. 知识 Feign常用自定义配置 类型 作用 说明 feign. ...
- Kamailio 5.8.3与rtpengine双网卡SBC集成要点
本文档总结了将Kamailio 5.8.3与rtpengine(配置为双网卡模式)集成以实现SIP+RTP媒体流转发(包括音视频和RTCP)的关键配置要点和最佳实践.用户场景包括:无NAT.公私网双向 ...
- CF1928E Modular Sequence 题解
CF1928E Modular Sequence 考虑合法的答案的构成为一个 \(x,x+y,\dots x+ky\) 的块加上若干个 \(x\bmod y,x\bmod y+y,\dots x\bm ...
- 前端开发系列121-进阶篇之defineProperty
本文介绍`Object.defineProperty()`方法,并基于此简单讨论数据劫持的实现方案. defineProperty Object.getOwnPropertyDescriptor(ta ...
- leetcode 468 验证IP地址
简介 使用优雅的正则表达式 5种情况 情况: 块只包含一位数字,范围是 0 到 9. 块包含两位数字,第一位的范围是 1 到 9,第二位是 0 到 9. 块包含三位数字,且第一位为 1.第二.三位可以 ...
- 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 ...
- 【电脑技巧】CPU正常运行时间过长,怎么解决?--九五小庞
1.问题描述不少同志都遇到过这样的问题:按[Ctrl + alt + delete]打开任务管理器,切到"性能"选项卡下,发现自己电脑的CPU正常运行时间竟然为好几十天!很多人担心 ...
- Win11正式版网络错误访问提示0x800704cf的问题
有深度技术的用户在win11正式版系统电脑中出现网络错误提示0x800704cf错误代码,那么如何解决这个问题?接下来,深度官网小编为大家带来详细的解决方案,大家可以一起来看看. 当 Win11 正式 ...
- 分享一个国内可免费使用的ChatGPT网站,免费无限制,写论文必备,支持AI绘画
背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具,近期的热度直接沸腾. 作为一个AI爱好者,翻遍了各大基于ChatGPT的网站,终于找到一个免费!免登陆!手机电脑通用!国内可直接对话的C ...
- VHC - 一款基于 vue3 的移动端日期、时间选择插件 功能丰富 文档细致
vue3-hash-calendar 基于 vue3 的移动端日历组件 文档网站 更新日志 效果图 仓库地址 github:https://github.com/TangSY/vue3-hash ...