第一章 Java概述
1.1Java的发展历史
于1995年被'Java之父'詹姆斯.高斯林发明,其中存在着重要的版本有JDK1.5 JDK8.0(市场占有率最高) JDK11 以及最新的JDKK17;
其有着重要的特点:
-
面向对象;2.支持分布式;3.健壮性;4.安全性;5.跨平台性
1.2.Java的跨平台性
特点是:一处编译,到处运行
原因是:对应平台下都安装了不同版本的JVM,jvm是java运行所需要的环境,又称为java虚拟机.
1.3.java环境搭建
第一步:
直接在单击此电脑右键--属性--高级系统设置--环境变量--系统变量中新建一个JAVA_HOME的变量名,变量值设为jdk所在的bin目录的父级目录下的路径
第二步:
在系统环境path变量中新建一个%JAVA_HOME%/bin的变量
测试java环境变量是否设置成功':
1.在任意一个文件夹的地址栏中输入cmd,直接输入javac,出现以下即可;
2.继续输入java运行,出现一下内容即可.
查看自己的jdk版本 在cmd运行框中输入java-version;
1.4.JDK,JRE,JVM的区别
JDK:(Java development kit)Java软件开发工具包
JRE:(Java运行环境和编译所需要的一些核心类库
JVM:Java虚拟机;
其中JDK>JRE>JVM
1.5.第一个Java代码"HelloWorld"
在记事本中编写自己的第一个Java代码
class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
然后在cmd运行框中找到正确的文件位置进行编译和运行.(注意:javac后面需要加上java文件名的后缀;而java则不需要)
第二章 Java基础语法
2.1.注释
单行注释
格式:// 用来解释说明单行代码的作用或个人写法
多行注释
格式:/*
......
......
......
*/
给多行代码进行统一的解释说明;多行注释中可以嵌套单行注释进行使用,但是单行注释中不能嵌套多行注释.
文档注释
格式/**
....
.....
*/
也是对大篇幅的代码进行解释说明,但是后期可以形成解释性文档.
2.2 关键字
2.2.1概念:
被Java语言赋予关键性的意义的单词.例如:class ; public;static;void
2.2.2组成特点:
关键字的组成字母全部小写.
2.3标识符
2.3.1概念:
给类(接口),方法(变量)等起名字的一种字符序列;
2.3.2 组成规则:
可以由数字0-9组成
严格区分英文大小写
可以有特殊符号$和_
2.3.3命名规则
首位不能是数字
不能使用Java的关键字
严格区分大小写(A和a是不一样的)
2.3.4命名规范
类或者接口采用大驼峰命名法(即每个单词的首字母大写)
方法或者变量采用小驼峰命名法(即第一个单词的字母不大写,剩下的首字母全部大写)
常量中单个字母都要大写,多个单词中每个单词都要大写并且每个字母之间都要用_连接
2.4常量值
2.4.1概念:
在程序运行中数值不发生改变的值
2.4.2分类:
字面值常量
自定义常量(面向对象讲)
2.4.3 字面值常量
整数型:所有的整数.例如:2,89,-123....
浮点数型:所有的小数.例如:3.14,98.76,-23.45....
字符型:单个字符的类型,例如'a','2','啊'....
字符串型:双引号括起来的内容,例如"dasasda","dnmd".....
布尔型:true和false
空常量型:null
2.5计算机中如何储存数据
2.5.1计算机储存单位
字节(Byte)计算机内用来储存数据的单位,一个字节相当于八位
位(bit)计算机内最小的储存单位,二进制中的0或1就是一个位
转换关系:
8bit=1byte
1024byte=1KB
1024KB=1MB
1024MB=1GB
2.5.2 进制
就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
二进制:逢2进1,由0 1组成(计算机底层使用的进制)0B
八进制:逢8进1,由0 1 2 3 4 5 6 7 组成(0)
十进制:现实生活中常用的进制,逢10进1,由0 1 2 3 4 5 6 7 8 9 组成
十六进制:逢十六进1 ,由0 1 2 3 4 5 6 7 8 9 a b c d e f组成(0X)
2.6变量
2.6.1 概念:
在程序运行中其值可以发生改变的
2.6.2 定义格式:
第一种: 数据类型 变量名=初始值;(推荐)
第二种: 数据类型 变量名;
变量名=初始值;
2.7Java中的数据类型
Java是一种强数据类型,变量被定义了数据后就会存在于程序中,占有一定的内存.
2.7.1 数据类型分类
引用数据类型
基本数据类型
2.7.2 基本数据类型
整数型
bety 占用一个字节,(范围-128-127)
short 占用两个字节
int 占用四个字节,一般默认int类型
long 占用八个字节,再定义时需要在初始值后加L或l
浮点数
float 单精度小数类型 占用四个字节 在定义时需要在初始值后加F或f
double 双精度小数类型 占用八个字节 默认的小数类型
字符型
char 占用两个字节
布尔型
true
false
2.7.3 基本数据类型转换
隐式转换(自动类型转换):指在数据进行数据运算时系统自发的由数据范围小的类型转换成数据范围大的类型
显式转换(强制类型转换):指在数据进行数据运算时系统自发的由数据范围小的类型转换成数据范围大的类型,一般会造成数据的精度缺失.
强制转换的格式:
int a=10;
bety b=20;
b=(bety)(a+b);
2.8运算符
2.8.1 运算符的分类
算术运算符
逻辑运算符
赋值运算符
关系运算符
三元运算符
位运算符
2.8.2 算数运算符
+,-,*,/,%,++.--
注意:
'+'加号:
当➕参与运算时代表简单的加法;当有字符串参加时,与字符串相近的那一部分的功能为拼接
'++'和'--':
当++和--在单独参与运算时,仅仅代表自增或者自减;
但当++和--参与组合运算时,需要分情况来看:
-
当++=或者--=的时候应该先进行自增或者自减的运算,再进行赋值;
-
当=++或者=--的时候应该先进行赋值再进行自增或者自建的运算;
2.8.3逻辑运算符
与&,或|,异或^,非!,双与&&,双或||
单与&和双与&&:
相同点:
具有相同的运行结果,即遇false即false;
不同点:
双与&&比单与&具有短路效果,进而程序运行的效率更高,表现为当左边出现false时,双与&&会停止运行后面的程序,但是单与&依旧会运行完整;
单或|和双或||:
相同点:
具有相同的运行结果,即遇true即true;
不同点:
双与||比单与|具有短路效果,进而程序运行的效率更高,表现为当左边出现true时,双与&&会停止运行后面的程序,但是单与&依旧会运行完整;
异或^:
相同为false(相同为0);不同为true(不同为1);
特点:当一个数经过两次异或同一个数的结果还是它本身(a=a^b^b;)
非!:
非true即false;
2.8.4赋值运算符
分类: +=,-=,*=,/=,%=
即把等号右边的值赋值给左边;
例如 a+=b相当于a=a+b(以此类推)
特点: 赋值运算符隐含了强制类型转换.
int a=10;
byte b=20;
1. b+=a;
2. b=b+a;
那么第一种不会报错,是因为+=中间隐藏了强制类型转换
第二种会报错,是因为在进行运算时b会被强制转化成int,但是在接收数据时b的类型为byte,类型不符则会报错
2.8.5关系运算符
关系运算的结果返回值一定是Boolean值,即true或false;
分类:
> | 大于号 | |
< | 小于号 | |
>= | 大于等于号 | |
<= | 小于等于号 | |
== | 判断是否相等 | |
!= | 判断是否不相等 |
2.8.6 三元运算符
使用格式:
数据类型 变量=条件表达式?结果1:结果2;
执行流程:
先进行条件表达式的判断,当满足时讲结果1赋值给变量,不满足时讲结果2赋值给变量.
代码示例:
class text{
public static void main(String[] args){
int a=10;
int b=20;
int max=a>b?a:b;
System.out.println("最大值是:"+max);
}
}
2.8.7 位运算符
位运算符 | 符号解释 | |
& | 按位与,当两边都是1或true时才返回1 | |
| | 按位或,当有一边是1或true时就返回1 | |
~ | 按位非,把操作数的每一位按位取反(包括符号位) | |
^ | 按位或异,当两位相同时返回0,不同时返回1 | |
<< | 左移符号,将符号左边的数据向左移动指定的位数,操作补码,按位补0,结论:左边的数据乘以2的移动次幂 | |
>> | 右移符号,将符号左边的数据向右移动指定的位数,操作补码,按位补1,结论:左边的数据除以2的移动次幂 | |
>>> | 无符号右移,将符号左边的数据向右移动指定的位数,操作补码,按位补0 |
2.9 导包操作
一般配合别的语法嵌套使用,这里举例三元运算符来判断大小
2.9.1代码示例:
import java.util.Scanner;
class text{
public static void main(String[] args){
Scanner hb=new Scanner(System.in);
System.out.println("请输入数据:");
int first=nextInt();
int secend=nextInt();
int max=first>secend?first:secend;
System.out.println("更大的那个数是:"+max);
}
}
2.9.2选择语句:
第一种:
if( 条件表达式){
//
}
第二种:
if( ){
//
}
else {
}
第三种:
if( ){
}else if(){
}else if(){
}.....
else{
}