写在前面
笔者想走Java后端就业的路子,参考网上大佬的Java学习路线学习Java,在这里记录一下我的学习进度。
由于笔者有一年C++基础,所以在基础语法部分会与C++有一些联系,并且节奏较快
注:本专栏内容是学习黑马程序员的网课得来,再加上笔者自己的理解
Java环境配置
(1)JDK下载
在windows系统上使用Java要先下载JDK,笔者下载的是JDK24,推荐下载JDK21/17
网站:www.oracle.com/java/techno…
下载哪个版本读者请自便
(2)IDE安装
集成开发环境我用的是IDEA完整版,如果预算充足可以安排完整版,如果经济窘迫可以使用社区版或者破解版
网站:www.jetbrains.com/idea/downlo…
(3)配置JDK环境变量
找到 JDK 安装根目录(比如C:\Program Files\Java\jdk1.8.0_391,不要带 bin 目录),复制路径;
右键「此电脑」→「属性」→「高级系统设置」→「环境变量」;
「系统变量」中新建,变量名:JAVA_HOME,变量值:粘贴刚才的 JDK 根目录路径;
找到「系统变量」中的Path,编辑,新建一行,输入:%JAVA_HOME%\bin,保存所有设置;
关闭原有命令行,重新打开,执行验证命令:
java -version # 查看Java运行环境版本
javac -version # 查看Java编译器版本
然后现在打开IDEA正常创建项目应该是可以识别到JDK的
(4)IDEA项目结构
使用IDEA时要注意项目结构,是一层一层的
由大到小的顺序为:project(项目)>module(模块)>package(包)>class(类),前包含后
标准格式应当是这样:
test(项目根目录)
├─ .idea(IDE配置目录,自动生成)
├─ out(编译输出目录,自动生成)
├─ src(源码目录)
│ └─ com
│ └─ yxc
│ └─ demo(包名,按公司/个人域名反向命名,避免冲突)
│ ├─ controller(业务接口层)
│ │ └─ UserController.java
│ ├─ service(业务逻辑层)
│ │ └─ UserService.java
│ ├─ dao(数据访问层)
│ │ └─ UserDao.java
│ └─ Main.java(程序入口类)
└─ test.iml(模块配置文件)
笔者解释一下这个视图:
test就是项目根目录,.idea是自动生成的配置文件,out是编译输出目录,src是源码目录,.iml是模块配置文件
模块要放在项目里,包要放在src里,类要放在包里
包的命名规则:用小写字母,以公司 / 个人域名反向开头(如 com.yxc.demo)
每个类必须放在包内,开头用 package com.yxc.demo; 声明所属包。
Java基础语法
(1)注释和关键字
注释是每个编程语言都有的部分,而Java的注释格式也很常规,有三种:
单行注释:
//注释内容
多行注释:
/*注释内容
注释内容*/
文档注释:
/**
*注释内容
*注释内容
*注释内容
*/
注释主要起到的是解释代码的作用
关键字就是在Java中有特殊意义的单词,在各个编程语言中都有
注:关键字的单词每个字母都是小写
类似class、public、private等等都是关键字,在编辑器中有特殊颜色标识
(2)字面量与变量
字面量是程序中直接表示的 “常量值”,是数据的具体表现形式,包括:整数、小数、字符串、字符、布尔、空(null),还有类似制表符一类特殊的字面量
注:字符由单引号括起来,字符串由双引号括起来
变量就是在程序中存储数据的东西,它起到的是存储的作用
定义格式:数据类型 变量名 = 数据值,数据类型起到的是限制作用,限制变量的类型就是上文的字面量
(3)数据类型
数据类型分为基本数据类型和引用数据类型
基本数据类型有四类八种:
注:使用long和float时,赋值一定要加入"L/l"、"F/f"后缀,最好使用大写后缀
如:
float f = 3.14F;
long num = 100L;
引用数据类型包括数组、类、接口,后边会详细讲到
数据类型转换:
数据类型转换分为隐式转换和强制转换,隐式转换是系统自带的转换,规则是:范围小的转换为范围大的再运算
范围大小:byte<short<int<long<float<double
注:byte、short、char相互运算时都会转成Int
强制类型转换是范围大的转换为范围小的,格式:
目标数据类型 变量名 = (目标数据类型)被强转的数据
拆箱和装箱:
这是将基本数据类型和对象互相转换的操作,适用于一些必须操作对象的情况
核心原理是Java为每个基本数据类型都提供了一个包装类,装箱是把基本数据类型自动转换为对应的包装类对象;拆箱是把包装类对象自动转换为对应的基本数据类型。
语法格式:
装箱:
自动:包装类 变量 = 基本类型值;
手动:包装类 变量 = 包装类.valueOf(基本类型值);
拆箱:
自动:基本类型 变量 = 包装类对象;
手动:基本类型 变量 = 包装类对象.xxxValue();
(4)标识符(命名规则)
标识符就是给类、方法、变量等起的名字
标识符命名规则:
1.由数字、字母、下划线、$组成
2.不能以数字开头
3.不能是关键字
4.区分大小写
行业命名规范:
小驼峰命名法:适用于方法和变量
1.标识符是一个单词时全部小写
2.标识符由多个单词组成时,第一个单词首字母小写,其余单词首字母大写
大驼峰命名法:适用于类
1.标识符是一个单词时首字母大写
2.标识符由多个单词组成时,每个单词首字母大写
常量等全部使用大写字母表示
(5)键盘录入
键盘录入适用于需要用户在键盘输入内容的情况
步骤:
1.导包
import java.util.Scanner
这一步必须出现在类定义之前
2.创建对象
Scanner 变量名 = new Scanner(System.in);
3.接收数据
数据类型 变量名 = 上一步的变量名.next数据类型名();
举个例子方便理解:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
(6)运算符和表达式
运算符就是类似+、-、*、/这样的,用来操作字面量和变量
用运算符把字面量或变量连接起来的式子就叫做表达式
算数运算符:+、-、*、/、%、自增(++)、自减(--),除法规则是:只要有一个操作数是 float 或 double 类型,/ 就会执行浮点除法,结果保留小数部分
注:当有"+"运算符且操作数为字符串型时,其就变成连接符号,作用是拼接字符串;且字符串可以与数字型运算,有字符串部分时才是拼接,若有连续多个"+",则从左到右依次执行
自增自减运算符分为前置后置,前置是先算后用,后置是先用后算
赋值运算符:=、+=、-=、*=、/=、%=,作用是将左数与右数计算之后赋值给左数
关系运算符:==、!=、<、>、<=、>=,返回结果都是boolen型的
逻辑运算符:&(与)、|(或)、!(非)、^(异或),规则与C++一致,分别为全真为真、有一个即为真、取反、相同为假不同为真,这几个运算符既可以用来判断布尔类型,在整数类型运算时也可以作为位运算符
更加常用的短路逻辑运算符:&&(短路与)、||(短路或),作用为只要左边能得到结果则直接返回结果不看右边,节省开销
三元运算符:关系表达式?表达式1:表达式2,内表达式结果为真则外表达式结果为表达式1,内表达式结果为假则外表达式结果为表达式2
运算符的优先级不需要过多考虑,如果不确定可以直接用()规定
程序控制结构
程序控制结构分为顺序、选择、循环,程序控制结构就是程序运行方式,由这三种就可以实现一切功能
(1)顺序
顺序结构最简单,程序默认就是顺序完成每一句代码
(2)选择
选择结构由判断组成,通过判断语句来决定是否执行下一句话
if判断语句从易到难一共有三种格式:
if(判断条件){
代码块
}
如果判断条件符合则执行括号里的代码
if(判断条件1){
代码块1
}
else {
代码块2
}
如果判断条件1符合,则执行代码块1,否则执行代码块2
if(判断条件1){
代码块1
}
else if(判断条件2){
代码块2
}
else if(判断条件3){
代码块3
}
………………
else{
最后一个代码块
}
可以一直判断,如果都不符合就执行最后一个代码块
注:判断条件里的结果只能是布尔类型
switch语句也是判断语句的一种,在某些情况下比if else语句更好用
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
……
default:
语句体n+1;
break;
}
会将表达式的值与case里的依次比较,等于哪个就执行哪个,若是都没有则执行default
注:一定要写break,否则会触发case穿透,一直执行到下一个break或结束为止
switch在JDK14之后优化了,有了更简单的写法:
switch(表达式) {
case 值1 -> {
语句体1;
}
case 值2 -> {
语句体2;
}
// 多个case可以合并(用逗号分隔)
case 值3, 值4 -> {
语句体3;
}
// 箭头后只有一行代码时,可省略大括号
case 值5 -> 语句体4;
default -> {
语句体n+1;
}
}
(3)循环
循环结构就是重复做一件事,直到达成某个条件后跳出循环
常用的循环语句有for循环和While循环,do while循环笔者用的并不多
for循环语句格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体
}
//举个例子:
for(int i=0;i<10;i++){
sout("这里是计梦星河")// 在IDEA里sout+Tab键可以直接变成标准输出语句
}
符合条件判断语句则继续循环,不符合就跳出循环
While循环语句格式:
While(条件判断语句){
循环体;
条件控制语句
}
//举个例子
int i=0;
While(i<=10)
{
sout("这里是计梦星河");
i++;
}
与for循环跳出规则一致
跳出循环有两个关键字:continue和break
continue的作用是跳出这一层循环,即直接到下一层循环
break的作用是直接跳出循环,执行循环后的语句
循环的妙用:无限循环,笔者最常用的写法是:while(true),这样的话如果没用break循环将永不会结束
写在最后
本篇博客主要记录了Java的基础语法,与C++相似度极高,所以仅仅是简单记录,这些语法的各种妙用在未来写代码时一定可以找到的
后续会更新Java的数组、面向对象等部分