【JAVA百炼成仙】筑基篇——JAVA筑基

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:xhs1999xhs (备注Java)
img

正文

🔎这里是JAVA成仙之路,关注学习JAVA不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

文章目录

java程序基本结构

  • java程序的源码文件是Xxx.java,Xxx代码类名和文件名一致(一般要求首字母大写,从第二个单词首字母大写。

新建一个类,类名User

class User{
	
}

在这里插入图片描述

  • 新建一个User类,执行代码在控制台打印出"hello 中国"的效果
class User{
public static void main(String[] arg){
System.out.print("hello 中国");
}
}

在这里插入图片描述
javac User.java 意思是编译User.java文件,-encoding utf-8是设置字符集防止乱码。java User是执行编译后的文件

程序注释

单行注释:

// 单行注释

多行注释:

/\*
 多行注释
\*/

文档注释,主要依赖于javadoc.exe,提取java源代码文件中的注解结构,生成html-api 参考文件

/\*\*
 \* 文件注释
 \* 类注释
 \* 属性注释
 \* 方法注释
 \*/

案例:

package com;
/\*\*
 \* 这里主要写本文件的注释信息,比如作者,文件名之类的注释
 \* @author webrx
 \* javac -d . Hello.java
 \* java com.Hello
 \*/
public class Hello {
	/\*
 \*多行注释 
 \*/
    public static void main(String[] args) {
		// 单行注释
        System.out.println("Hello com");
    }
}

变量、常量

变量
  • 变量是指值在程序运行期间可以被改变的量。变量用于储存信息。它指向内存的某个单元,而且指明了这块内存有多大。java是强类型,变量必须先声明初始化才可以使用。java程序中,变量名是区分大小写。
public class User {
// 在这里声明的变量属于全局变量,在整个类中都可以用
    //声明静态变量,并初始化
    static int a = 3;
    //声明变量
    int b;
    public static void main(String[] args) {
//在方法里声明的变量只能在这个方法中用,在其他方法中不能用。
//声明变量,并初始化
int c=111;
//输出变量a和c
System.out.println(a);
System.out.println(c);

}

我这里是在WIN10的控制台执行的,用IDEA或者其他工具可以直接点运行程序就可以
在这里插入图片描述

常量

在开发领域常量一般都要求全大写

  • 指在程序执行期间其值不能发生变化的数据。例如数学中的π= 3.1415……又如:整数123,小数1.23,字符’A’,布尔常量 true、false等,程序开发中,常量名一般规则全部大写,声明常量时必须赋值,以后只能使用,不能再赋值,java语言声明常量使用final。
class User{
// 声明全局常量
static final int a=3;
public static void main(String[] arg){
// 声明局部常量
final int c=111;
System.out.println(a);
System.out.println(c);
}
}

在这里插入图片描述

这样看是不是两个没什么区别?
  • 常量是不可以变的,并且创建的时候必须赋值。而变量可以不赋值,用的时候再赋值。

这里声明常量a没有赋值,后面用的时候再赋值

class User{
static final int a;
public static void main(String[] arg){
final int c=111;
System.out.println(a);
System.out.println(c);
}
}

运行报错
在这里插入图片描述
变量a声明的时候没赋值,运行之前赋值

class User{
static int a;
public static void main(String[] arg){
int c=111;
a=11;
System.out.println(a);
System.out.println(c);
}
}

正常运行
在这里插入图片描述

数据类型、类型转换

(1)基本数据类型 byte short int long float double char boolean (8大类型)

​ 1、整型 byte short int long

​ 2、浮点型 float double

​ 3、字符型 char a = ‘y’;

​ 4、布尔 boolean
(2)引用数据类型(对象 类 接口 数组)
在这里插入图片描述

常用数据类型

常用数据类型,其他的基本数据类型看上面的表。用法都一样

class User{
public static void main(String[] arg){
// int类型 赋值只能是整数,长度适中,一般都够用
int a=1;
// String 字符串类型,数字,字母,汉字都属于字符串都可以用
String b="hello";
// boolean 一般用于判断对错,因为这个类型的变量只有两个值,true和false 要么对要么错
boolean c=true;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}

在这里插入图片描述

类型转换
// 声明int类型
int i = 30;
//转换成short类型
short n = (short)i;

package cn;

public class Var2 {

	public static void main(String[] args) {
		int a = 5;
		a += 1;
		a = a + 1;
		System.out.println(a);//7
		short b = (short) a;//7
		b += 1;//b 8 (+=可以实现自动的类型转换)
		a = b + 1;//a = 9 b=8 (b+1 结果类型为int 此)
		System.out.println(a);//9
		System.out.println(b);//8
	}
}

自动隐式转换
在这里插入图片描述

运算符表达式

运算符:是一种特殊符号,用以表示数据的运算、赋值和比较。

表达式:使用运算符将运算数据连接起来的符合Java语法规则的式子。

int i = 20*30;

(1)、算术运算符

+ - * / % ++ --

int i = 5;
++i; //自身加1
i++;
System.out.println(--i); //自身减1 如果++ -- 在变量前,先执行再使用,如果在后,先使用再自执行。

public class Var4 {
    public static void main(String[] args) {
        int i = 5;
        ++i;
        int b = i--;//b=6 i=5
        System.out.println(i);//5
        System.out.println(b);//6

        System.out.println(6%2);//0 取余数
        System.out.println(3/2);//1 取整商
        System.out.printf("%.3f%n",3/2f);//1.500
        System.out.printf("%.3f",3/2.0);//1.500
    }
}

(2)、赋值运算符

= += -= *= /= %=
在这里插入图片描述
(3)、比较运算符

​ == != > >= < <=
== 和 = 结果不一样,==是判断等不等,=是赋值
注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注2:比较运算符“==”不能误写成“=” ,切记!切记!

在这里插入图片描述
(4)、逻辑运算符

&&逻辑与 ||逻辑域 !逻辑非

在这里插入图片描述

标识符、关键字、保留字

  • 标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。
  • 标识符是由字母 数字 下滑线 $组成的,不能数字开头,不能使用空格和特殊的符号,如下红框内的是非法
    在这里插入图片描述
  • 保留字(reserved word),指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。
    保留字包括关键字和未使用的保留字。
  • 关键字则指在语言中有特定含义,成为语法中一部分的那些字。在一些语言中,一些保留字可能并没有应用于当前的语法中,这就成了保留字与关键字的区别。一般出现这种情况可能是由于考虑扩展性。例如,Javascript有一些未来保留字,如abstract、double、goto等等。
关键字含义
abstract表明类或者成员方法具有抽象属性
assert断言,用来进行程序调试
boolean基本数据类型之一,声明布尔类型的关键字
break提前跳出一个块
byte基本数据类型之一,字节类型
case用在switch语句之中,表示其中的一个分支
catch用在异常处理中,用来捕捉异常
char基本数据类型之一,字符类型
class声明一个类
const保留关键字,没有具体含义
continue回到一个块的开始处
default默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
do用在do-while循环结构中
double基本数据类型之一,双精度浮点数类型
else用在条件语句中,表明当条件不成立时的分支
enum枚举
extends表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
final用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float基本数据类型之一,单精度浮点数类型
for一种循环结构的引导词
goto保留关键字,没有具体含义
if条件语句的引导词
implements表明一个类实现了给定的接口
import表明要访问指定的类或包
instanceof用来测试一个对象是否是指定类型的实例对象
int基本数据类型之一,整数类型
interface接口
long基本数据类型之一,长整数类型
native用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new用来创建新实例对象
package
private一种访问控制方式:私用模式
protected一种访问控制方式:保护模式
public一种访问控制方式:共用模式
return从成员方法中返回数据
short基本数据类型之一,短整数类型
static表明具有静态属性
strictfp用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super表明当前对象的父类型的引用或者父类型的构造方法
switch分支语句结构的引导词
synchronized表明一段代码需要同步执行
this指向当前实例对象的引用
throw抛出一个异常
throws声明在当前定义的成员方法中所有需要抛出的异常
transient声明不用序列化的成员域
try尝试一个可能抛出异常的程序块
void声明当前成员方法没有返回值
volatile表明两个或者多个变量必须同步地发生变化
varjava10新增的关键字,用来推断类型 var i = 20;
while用在循环结构中

小常识

  • java是严格区分大小写的

(1)类,接口和枚举或对象是首字母大写,如果有多个单词第二个单词首字母大写:User.java UserBook.java

System Scanner Date String 。

(2)变量名,常量名严格区分大小写 java中常量名要求全部大写 AGE。

(3)方法名一般是

setXxx getXxx isXxxx getUserName() 动词开头,从第二个单词开始使用大写。

最后

看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面

小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>

image

针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺

image

全都是一丢一丢的收集整理纯手打出来的

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

image

image

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:xhs1999xhs (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
核心进阶手册>,可以瞬间查漏补缺

[外链图片转存中…(img-S7GW4x1B-1713681226975)]

全都是一丢一丢的收集整理纯手打出来的

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

[外链图片转存中…(img-jkl813D9-1713681226975)]

[外链图片转存中…(img-Oudz4Ds7-1713681226976)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:xhs1999xhs (备注Java)
[外链图片转存中…(img-zwiMCMnH-1713681226976)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值