Java入门
一、准备阶段
Java环境
1.JDK
jdk(Java Development Kit),从字面意思翻译过来就是java开发的工具。Java 开发工具包 (JDK) 提供了构建所有面向 Java 平台的应用程序的基础。JDK 包括执行各种任务的各种工具和实用程序,包括将源代码编译成字节码、打包应用程序、启动 Java 虚拟机 (JVM) 和管理 Java 应用程序的运行时环境(JRE)。
2.JRE
Java 运行时环境(简称 JRE)是一个软件层,它在计算机的操作系统软件之上运行,提供特定 Java 程序运行所需的类库和其他资源。它包含了JVM。
3.JVM
Java虚拟机 1、JVM简介 JVM 是可运行 Java 代码的假想计算机 ,一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。
这个博主写的是十分详细的JVM详解
JAVA 的注释
单行注释
// 这是一行注释
多行注释
/* 这是第一行 这是第二行 ...... 这是多行注释 */
文档注释
/** * 这个类演示了文档注释 * @author Ayan Amhed * @version 1.2 */
JAVA 的一些命令
// javadoc -- 提取注释 // jlink -- 下载自定义的JRE // javac -- 编译Java文件 // java -- 运行class文件
标识符
1.标识符的规定
-
标识符由字母、数字、下划线、美元符号以及部分Unicode字符集组成。
-
标识符的首字母以字母、下划线(一般不推荐)、或美元符号开头,后面可以是任何字母、数字、美元符号或下划线,但是不能以数字开头。
-
标识符的命名不能是关键字、布尔值、和null
-
标识符区分大小写,没有长度限制
可以参考一些开发规范来规范自己代码的书写。
2.保留的关键字
java是可以进行反编译的
1.可以利用软件进行,例如jd-gui-0.3.4
2.使用命令
javap class文件名
二、数据类型
1.基本数据类型
1.数值类型
整数
-
byte --- 1字节 8 位 取值范围 -128-127
-
short -- 2字节 16 位 取值范围 -32768-32767
-
int -- 4字节 32位 取值范围-2^31 --- 2 ^31-1
-
long -- 8字节 64位 取值范围 -2^63 -- 2^63-1 表示时一般在数字后加上大写的L
-
char -- 2字节 16无符号位 取值范围 0- 65535
浮点数
-
float -- 单精度浮点型 4字节32位
-
double -- 双精度浮点型 8字节 64位
2.布尔(boolean)类型
-
1字节 ,但不一定是8位
-
只能进行逻辑运算,结果还是布尔型
2.引用数据类型
-
类(字符包含在类内),接口,数组,枚举
-
除了基本数据类型其他的都是引用数据类型
3.定义变量
// 格式 : 数据类型 变量名 int a; // 声明变量并赋值 int a = 10; // !变量的数据类型声明后就不能改变
4.数据类型转换
基本数据类型的级别
byte/shgort/char ->int->long->float->double
-
byte/shgort/char三者运算后都是int
-
低级别到高级别会自动转换
-
可以直接将char类型赋值给int
-
浮点数计算时会有丢失精度的情况【慎用】(比如:钱不要用 float 和 double)
赋值时
1.低类型的给高级别类型赋值时自动转换(直接赋值)
2.高级别给低级别类型赋值时需要强制类型转换
三、Scanner类
Scanner类是一个用于输入文本的实用程序,可以方便的获取用户的输入,实现程序和人之间的交互。
在使用之前,
1.首先要导入java.util包中的Scanner类
import java.util.Scanner;
2.创建Scanner对象,用于扫描用户的输入。可以使用以下 语句创建Scanner对象,用于扫描用户的输入。
Scanner 变量名 = new Scanner(System.in);
Scanner类常用方法
方法名称 | 说明 |
---|---|
String next() | 获得一个字符串(获取一个数据,返回数据String类型的数据) |
String nextLine() | 获取一行数据(返回String类型的数据) |
int nextInt() | 获得一个整数 |
double nextDouble() | 获得一个双精度浮点型数据 |
Boolean hasNext() | 判断是否输入数据,如果有输入数据,则返回true,否则返回false |
四、运算符
1.赋值运算符
赋值运算符主要是=
用于给变量赋值,可以与算术运算符结合,构成复合赋值运算符
例如 +=
、-=
、*=
、/=
、%=
、
int a = 5;
2.算数运算符
算数运算符主要包括 +、-、*、/、%、++、--
3.关系运算符
关系运算符主要包括 ==、!=、<、>、>=、<=、
4.逻辑运算符
逻辑操作符主要包括
-
&
逻辑与 -- 两个操作数都是true,结果才是true -
|
逻辑或 -- 两个操作数都是false,结果才是false -
`^
逻辑异或 -- 两个操作数相同,结果是false,两个操作数不同,结果是true -
!
逻辑非 -- 操作数为true结果是false -
&&
短路与 -- 运行规则同&
但是如果左边为false,左边表达式不会计算了,相当于短路了 -
||
短路或 -- 运行规则同|
但是如果左边为true,左边表达式不会计算了,相当于短路了
5.位运算符
首先我们需要知道
`正数的原码、反码、补码是相同的
1.原码
最高位表示符号位,其余位表示该数的二进制的绝对值
2.反码
在原码的基础上除符号位外其余位按位取反
3.补码
负数的补码等于其反码+1
位运算符表
运算符 | 含义 | 运算规则 |
---|---|---|
& | 按位与 | 两个操作数都是1,结果才是1。 |
| | 按位或 | 两个操作数一个是1,结果就是1。 |
^ | 按位异或 | 两个操作数相同,结果就为0,两个操作数不同,结果就为1。 |
~ | 按位非 | 操作数为1,结果为0。操作数为0,结果为1。 |
<< | 左移 | 右侧空位补0 |
>> | 右移 | 左侧空位补最高位,即符号位。 |
>>> | 无符号右移 | 左侧空位补0。 |
按位与
按位或
按位异或
按位取反
右移
左移
6.条件运算符
条件运算符又称三目运算符或者三元运算符
条件 ? 表达式1 : 表达式2
-
当条件的结果为true时执行表达式1
-
当条件结果为false时执行表达式2
int a =10,b = 20 ; System.out.println(a>b?a:b); //a大于b吗?如果大于输出a,否则输出b