说明

这是一个完善了但又不完善的笔记,或许以后会更新

可以参考但请务必超越

源文件


Tools


Sublime Text
Typora
PicGo

Java

注意:本篇文章非常硬核,基本上就是写给“聪明人”看的,内容也大致都是文字,没什么图片视频好康的东西。如果你看不懂或者引起你的不良反应。还是有别的写的好的文章可以看的。

接下来要攻克的内容:JavaSE 数据结构 数据库(一点一点来嘛)

  1. JavaSE语法
  2. 集合及其背后的数据结构【面试的重点】 Java的数据结构和C的数据结构是一样的。因为数据结构是一门单独的学科。
  3. 数据库 就是MySQL

更多东西之后再说吧

EE初阶->前端部分+网络+多线程+maven+servlet+...

EE进阶->spring springMVC mybatis SpringBoot...

SE 基础 标准版

EE 框架 企业版

1.Java语言概述

1.1 Java是什么

这应该没什么好说的。直接百度都行!

首先,第一点,Java的创始人之一詹姆斯·高斯林。一般公认他为Java之父。java的祖师爷就是高斯林。

这个地方可以直接百度百科。别最后用着Java不知道是谁开发的。

高斯林就属于对国家有贡献的人。截止到今日本篇文章产出,他还活着反正¿

这里简单讲一下起源吧。(发展史什么的,百度就多了去了)

一开始的时候有一个项目叫oak,做的是智能家居这样的项目。这东西九几年啊,思想有点超前,所以就最终变革为了Java,做一些终端,网页什么的。

为什么叫Java?

爪哇岛 盛产咖啡

所以这个logo图标就是这样了

image-20211013122650360

1.2.为什么选择Java

Write once, Run anywhere

一次编译 到处运行

(Java喊出的口号,属于Java很强的特性优点)

开源社区

Java生态非常的完整。这个就太多了。

举个当下最新的例子,安卓和IOS,做手机软件肯定是要适配这2个环境吧。那么华为开发的鸿蒙,现在还不完善,就需要更多的开发者来完善这样一个生态环境,充实源社区。这样以后适配鸿蒙系统的软件肯定就会很方便。

这里提一嘴,Java有很美好且完善的社区环境,比如现在阿里巴巴使用Java就最多,我们可以获得很多的资源等。

Java还有很多的特性等等。我的学习方式习惯直接干代码,然后一点一点带上学习。这样直接动手思考,感觉要比看着文档先思考再动手效果要好。不过每个人都不一样,我觉得现在大多数人应该也是这样的吧。

“最好的语言”

这里注意。有一个老且广知的梗

XX是世界上”最好的语言“

最好的语言有双引号。意思是,在各行各领域,都有最好的语言。并不是所有环境情况都有这么一种语言是更好的。

在每个领域都有更合适的编程语言

有这么一个网站:世界编程语言排行榜

并不依靠这个排行分高下,只是一个统计。

那么如果有人问,xx是不是世界上最好的语言:

前提:分情况

如果是处理数据:Python

如果是处理操作系统底层相关:C/C++

如果是编写应用方面和WEB方面:Java

现在后台开发就是Java和C++是目前最多的

这里有一个JavaScript。他不是Java的,不属于Java,属于“蹭热度”

在前端,有前段三剑客

HTML + CSS + JavaScript

HTML就相当于素颜,现在的网页基本也都是HTML5。CSS就是添加一些好看的特效等等,属于化妆。

这里的js是给诸如网页和后台的接口做事情的。属于行为。

还有一个点。当下热门语言中有一门python,一定要注意!python在测试开发,脚本,人工智能(AI),爬虫等方面可能属于“最好的语言”。但是,python不是很能作为程序猿的主语言。尤其是在后端开发中,python肯定是不行的呀。真正在实际应用中其实很少。

python他是雷声大,雨点小。作用在于大多数情况下,只是对数据的处理(分析呀,总结什么的)。你开发个游戏,那最主要的就是后端,肯定不能用。

而且,python语法过于简单,现在少儿都可以进行入门学习。

你先学C/C++/Java,看python就很简单。

反过来你先学python,再学C/C++/Java你就会觉得这他妈是什么鸡巴怎么这么难。

属于内行看门道,外行看热闹。

1.3Java开发环境安装

首先,先讲明白喽。目前大多数公司,都在使用JDK1.8。属于【目前公司的长期开发版本】

Java当然一直也在更新,现在应该已经JDK17了。那总不能他更新一次我们就更新一次代码去适配吧。

安装的话,当然在3个平台下都有安装教程,可以搜到很多。

注意一点,给系统配置环境变量一定要仔细认真!

1. JDK

JDK:Java开发者工具。

首先第一点,安装的时候全部默认文件夹,不建议整花里胡哨的文件目录。

一般来讲都会在系统盘里安装,这样大家都不会出岔子。使用的时候也不用再去找。

然后就是环境变量

注意,所有执行命令出现“非内部命令”字眼的,都是环境变量有问题。

正常情况下你应该有CLASSPATH,JAVA_HOME,以及配置好的Path。注意前后都不要有空格。win7及以下版本可能不是很一样,win10是列表可以直接添加,win7可能就一行。但是都大同小异。

我们可以使用终端来查看一下Java版本

java -version

注意后面的小版本号,不影响,只要是1.8就可以。

2.IDEA

全称IntelliJ IDEA。

和VS2019一样,也是集成开发环境的编译器。

注意,这里有一点很重要!

VS2019,Eclipse,MyEclipse等都可以写Java,但是,不建议也不要去用。

为什么呢?

idea就是当下最好的Java编译器了。和C语言一样,现在已经可以用VS2019了,那么肯定就不用旧的VC6.0了呀。而且,C语言用VS2019写可能比较好,Java用idea写比较好,这都是大家使用体验过来的经验。啊你就非要和别人不一样,那你这代码写出来出问题别人也帮不了你,岂不是写了个寂寞。

当然还有VScode,他只是一个大号的记事本,不建议初学者。

记住,一般进入公司的第一天,你肯定就得要用软件以及配置环境吧。你的leader只会告诉你我们用什么。你得自己搞定才行。别人帮不了你。

idea的安装配置我也就不多说了,网上教程也很多。每个人都有每个人的习惯嘛。

这里我就说一下语言的问题。

首先默认就是英语,我们也不要去改。

当然,idea是有中文汉语的插件的。但是,还是那句话,不建议也不要去用。

为什么?

别的编译器或者默认英文的软件能改中文就改了,但是有一些软件,他对其他语言的支持不够好。idea虽然用个中文汉语的插件能让人更容易理解,看得懂看的明白,但是,会有一些奇奇怪怪的神奇问题出现。就比如你改中文后,可能他有些个按钮接口出问题,就点了没反应。这TM,改语言吃的屎踩的坑,谁用谁知道。

如果你正在使用其他语言的插件,我建议你把他的勾勾点掉。大多数程序猿们也都是用默认英语。

工作中如果要操作个什么什么,人家告诉你英文,你都是中文,你怎么知道点什么玩意操作。

3.初识Java简单语句和语法

这里有一个支持插件的笔记本Sublime Text,我们可以使用这个来简单写一下代码。

那问题又来了,VScode和notepad++呢?也都是笔记本呀。

VScode,emm,随你。notepad++?确实好用,但是WDNMD辱华。notepad2还行。能代替notepad++的笔记本多得是,电脑自带的文本文档都行。

注意打开电脑的文件扩展名

Hello World

写下第一行代码

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("HelloWorld");
    }
}  

符号解释 打印方式

public:访问修饰限定符。

class:关键字,用来定义一个类。他的类型有点抽象。Java中一个类就对应一个字节码,这样的好处是用到那个类就加载那个类,不用一股脑都加载。

第一行的HelloWorld:类的名称。注意要和文件名一样,否则会报错(异常)。

public static void main(String[] args){}:Java当中main函数的固定写法就是这样。

String[] args:形式参数。数组。在C语言中是int arr[],在Java中是int[] arr。函数也称为方法。

System.out.println():打印函数。相当于C语言的printf()函数。Java中有3中打印方式。print打印不换行。println打印换行。printf就和C语言一样。一般都使用print和加了ln的2个,因为方便嘛。

"helloworld":双引号引出来的,也就是字符串。

看图认识下比较好

再多的内容就先不去多讲了。我们先运行!

注意了,我们写出来的文件,需要先编译一下。

这个.java的文件,他存在我们的磁盘上

我们怎么编译呢?

终端 移动目录

Java文件使用终端编译运行,也就是cmd命令提示符。或者powershell。再或者最新的windows terminal。

我们要运行文件,需要移动目录到文件所在的位置

打开终端的方法就不用多说了吧,这里就说一下移动目录的方法

第一种方法

我们默认应该是在系统盘下的

如果是别的盘,首先移动一下到别的盘

我这里是e盘,当然大写小写都可以

然后再cd一下到你的文件目录

第二种方法

直接在文件所在目录shift+右键。使用windows terminal的直接右键即可。

编译

从编译开始,首先需要明白一点,Java是非常安全且完善的语言。在Java中有一个术语叫异常,也就是出现了错误。只要有异常,一般都会直接停止并报出异常信息。

那么可以先编译看看

使用命令+文件名,注意一定要全名,加上后缀

javac HelloWorld.java

这里注意了,如果你写上了汉字,会提示编码错误

编码错误

javac在编译的时候是GBK格式去编译代码的

代码本身是UTF-8格式的

解决方法很简单,加上一个改变格式的选项

-encoding utf-8
javac -encoding utf-8 HelloWorld.java

然后就可以正常编译了。

看到产生了这个.class,就是编译成功了。

.class:字节码文件->二进制文件。包含了当前类中的信息。

使用记事本打开,很裂开,二进制看不懂。

可以使用Sublime Text打开看看

cafe babe

可以看到第一行cafe babe - 咖啡宝贝

用来区分其他类型文件,并且判断文件有没有受损

文件受损,文件开头受损的可能性最大

我草?不应该是baby吗?

啊哈!十六进制没特么y,只有ABCDEF,所以只能babe了。

运行

我们先直接运行

java HelloWorld

注意这里使用java命令,而且不能输入.class后缀

到此运行就结束了,可以看到打印在了终端的屏幕上。

但是还有一些问题存在。

唉我草?这.class是应该在哪里运行呀?现在只有终端,终端也就只能输入命令操作呀。

JVM:Java虚拟机。跑Java程序的。实际上是一个软件,用C/C++写的。虚拟机嘛,用软件实现了一个电脑。

JVM是把对应的字节码拉过去然后执行。

这里又有疑问了:这,我好像没安装JVM呀?

还记得我们下载配置的JDK吗,JDK这个开发者工具里,就包含了JVM。

JDK前面讲了,是开发者工具嘛。那么,其中其实还有JRE。

JRE:Java运行环境

他们的关系是这样的:

很好理解吧,开发者工具里有开发环境,开发环境具备了那就再装一个虚拟机。

一次编译 到处运行

前面讲到的Java发出的口号

Write once, Run anywhere

我们现在看.class文件,他不是在JVM中运行吗,那是不是说,只要安装好了JDK,.class在任何地方就都能运行。因为里面有JVM嘛。

核心就是.class,无论走到哪里,都能运行。

小结:

  1. 程序是怎么编译的
  2. 程序是怎么运行的
  3. 程序是跑到哪里的
  4. 程序跑的原理是啥

这4个点相比答案就很明显了。

agrs

刚才还有一个String[] args,在main函数中作为形式参数,他是一个数组,那么args是什么东西?

打印看看

public class HelloWorld{
    public static void main(String[] args){
        for(int i = 0;i < args.length;i++){
            System.out.println(args[0]);
            System.out.println(args[1]);
            System.out.println(args[2]);
            System.out.println(args[3]);
        }
    }
}

在Java中数组名.length就是他的长度,那么用for循环打印他的0123下标看看。

什么都没有?是因为没有赋值。

我们换一种方式运行

java Helloworld kirito is cool

可以看到,他打印了3个之后,提示异常停了下来,说下标3没有东西。那么我们再添加一个吧。(我英语不是很好,我就这么理解了,大概也差不多。for循环要打印4组,第一组就少一个,数组越界,直接就停下来了。)

java Helloworld kirito is very cool

嗯,很好的打印了出来,为什么打印了4次?

在命令行输入的内容,会全部填入args的下标中。然后for循环打印4次嘛

想要只打印一次,可以这样写

 System.out.println(args[i]);
public class HelloWorld{
    public static void main(String[] args){
        for(int i = 0;i < args.length;i++){
            System.out.println(args[i]);
        }
    }
}

就相当于这个样子

注释

Java中有3中注释方式

/**
*    文档注释:一般在类或者方法的前面
*/

//    行注释,很熟悉

/*
    块注释,也很熟悉,就一块一块的
*/

注意,在这里如果编译的话,注释中的中文也是UTF-8的格式,也会出现编码错误的情况,具体可以看上面编译时的情况。

IEDA的快捷简写

到这里基本上对Java的认识就讲完了,不过肯定还有其他的问题。

这里就解决一个小问题吧

可以看到我们写Java代码,main函数打印函数什么的好像很长很麻烦,每次都输入或者复制贴贴其实很麻烦,idea就提供了一些简单的指令

psvm - public static void main

sout - System.out.println

等等

简单视频总结

小头图版权:《明日方舟头像8》by QuAn_ 2021年10月11日晚上11点45分 pid:93388262

广告位招租
最后修改:2021 年 10 月 14 日 07 : 11 PM
如果觉得我的文章对你有用,请喂饱我!(理直气壮)