知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技  > 电脑

Java学习手册

发表时间:2022-03-25来源:网络

Java学习手册

本内容完全原创,转载请注明出处: https://www.jianshu.com/p/d6fa6831bec6
本次主题模块模板javase到javaee的课程文档内容。如果你也喜欢编程,可以加老薛的,一起学习,一起进步。

(一):Readme

1-1:学习编程方法

1:唯手熟尔(编程一定是建立在多敲的基础上的) 2:明日复明日,明日何其多(学习过程中的问题不要遗留到第二天再解决) 3:工欲善其事,必先利其器(学会使用百度、google等工具,会自己解决问题) 4:三人行必有吾师(同学之间一定要互相帮助,相互学习。遇到问题互相讨论)

1-2:如何选择一门初学语言

选择第一门编程语言,个人还是比较建议从以下几个维度去考量。

学习周期和学习成本

市场占用率和行业前景

你是否真的愿意从事开发工作或者从事IT方向?

1-3:计算机发展历史

•计算机的诞生: 1946年2月14日,在美国宾夕法尼亚大学,世界上第一台电子数字计算机ENIAC。

•第一代 电子管计算机(1946-1957)特点是操作指令是为特定任务而编制的,体积大,每种机器有各自不同的机器语言,功能受到限制,速度也慢,维护困难且价格昂贵。在软件上,通常使用机器语言或者汇编语言来编写应用程序

•第二代晶体管计算机(1958-1964)在整体性能上,比第一代计算机有了很大的提高。同时程序语言也相应的出现了,如Fortran,Cobol,Algo1 60 等计算机高级语言。

•第三代 中小规模集成电路计算机(1965-1971)20世纪60年代中期,随着半导体工艺的发展,成功制造了集成电路。中小规模集成电路成为计算机的主要部件.在软件方面,有了标准化的程序设计语言和人机会话式的Basic语言,C语言。

•第四代大规模和超大规模集成电路计算机(1971-2018)随着大规模集成电路的成功制作并用于计算机硬件生产过程,计算机的体积进一步缩小,性能进一步提高,出现了精简指令集计算机,在软件方面,人们发现Java、C++等语言由于具有“面向问题”、“非过程化程度高”等特点,可以成数量级地提高软件生产率。

•目前的发展趋势是向巨型化、微型化、网络化和智能化这4个方向发展。

巨型化是指具有运算速度高、存储容量大、功能更完善的计算机系统,其运算速度一般在百亿次每秒、存储容量超过百万兆字节。主要用于航空航天、军事、气象、人工智能、生物工程等学科领域。

微型化得益于大规模和超大规模集成电路的飞速发展,微处理器自1971年问世以来,发展非常迅速,几乎每隔两三年就会更新换代一次,这也使以微处理器为核心的微型计算机的性能不断跃升。

网络化是指利用通信技术和计算机技术,把分布在不同地点的计算机互连起来,按照网络协议相互通信,以达到所有用户都可共享数据和软硬件资源的目的,现在,计算机网络在交通、金融、企业管理、教育、邮电、商业等各行各业中得到广泛的应用。

智能化就是要求计算机能模拟人的感觉和思维能力,也是第五代计算机要实现的目标。

–展望未来,计算机的发展必然要经历很多新的突破。从目前的发展趋势来看,未来的计算机将是微电子技术、光学技术、超导技术和生物技术相互结合的产物。

(二):第一个HelloWorld

2-1:编程语言的发展历史

机器语言:典型的2进制文件 和计算机交流

汇编语言:通过大量的助记符表示一些基本的操作指令 完成计算机沟通

高级语言:通过常用的英语指令编写程序 完成沟通

常见的高级语言:除了之前提到过的以外

ortran: 是IBM在1954年提出的。主要用在要求复杂数学计算的科学和工程领域。现在仍然被广泛使用,尤其是工程领域。

COBOL: 于1959年提出。主要用于大量精确处理数据的商业领域中,比如金融、银行。今天,仍然有超过一半的商业软件使用COBOL编写。有将近100万人使用COBOL编程。

**PASCAL:**几乎和C同时提出。是nicklaus wirth教授为了大学教授编写的。由于没有大厂商和政府的支持,只是限于大学教育这一块。

ADA: ada以pascal为基本参照,是美国国防部(DOD)为了编写他庞大的命令和控制系统软件而设计的。他的一个重要的特性就是多任务,使用它编写的程序可以同时处理多项事务。JAVA也支持多线程。

2-2:Java语言发展历史

2-2-1:简单介绍: i:由sun公司开发的一门高级编程语言。 ii:面向互联网Internet的编程语言 iii:sun公司在09年被Oracle公司收购 2-2-2:技术架构方向 JavaSE:java基础和个人计算机应用(接下来我们要学习)JavaEE:开发企业环境下的应用开发 (以后的重点)JavaME:嵌入开发 塞班系统 市场占有率较低 了解即可2-2-3:Java语言特点 跨平台:

通过java编写的应用程序在不同的操作系统下都可以执行,屏蔽了平台差异性。

特简单:

屏蔽了大量的一个保留字 比如goto typedef等等 使用简答 没有指针

安全的:

没有指针 提供了内存管理机制 垃圾回收机制 安全机制等

完全面向对象

封装 继承 多态 语法更加清晰 所需要资源更少 后期更加利于拓展

2-3:常见的DOC命令

2-4:Java程序如何做到跨平台

A:一个.java文件被编译器编译为和平台无关的字节码文件.class

B:通过在不同平台(操作系统)安装对应的JVM,交由解释器开始解释执行

重点:Java之所以能够跨平台,就是由于Java中的**jvm(Java VIRTUAL MACHINE)**存在。JVM就是一个虚拟的用于执行bytecodes字节码的计算机它可以将我们编写好的java代码 编译为何平台无关的字节码文件,之后解释执行。

缺点:需要先将对应的.java文件变为.class文件。其实严格意义上讲,真正的跨平台是由jvm去执行的.class文件而执行的。这样的效率就会稍差,因为.class文件再要产生对应机器的机器码才能继续执行。所幸由JNI(just in time)即时编译

2-5:JDK的安装和卸载

2-5-1:环境搭建:

为了让操作系统,能够识别我们编写的代码,需要在电脑上安装jdk。

2-5-2:区别:

JDKjava development kit java开发包,主要用于做java开发JREJava Runtime Environment java运行时环境,主要用于执行测试 java代码JVMJava Vritual Machine java虚拟机,用来解释执行字节码文件

2-5-3:关系:

jdk属于jre的超集 jre属于jvm的超集

2-5-4:安装:

A、 进入官网直接下载自己需要的版本 下载地址

B、 用我发的 ?

推荐使用jdk8或者jdk11

2-5-5:具体安装步骤

傻瓜式安装即可,下一步,一直到确定即可。

2-5-6 测试是否安装成功:

打开cmd(按下键盘window+r键,然后输入cmd回车即可)中输入java 以及java -version,如果出现了选项卡,则证明安装成功。

2-5-7:查看安装目录中的bin文件夹

在bin目录中有几个常见的执行程序需要注意一下

2-5-8:编写第一个helloworld程序

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

第一步:进入指定文件目录的中,执行javac Demo.java ,出现报错信息,javac不是内部或者外部命令。

原因分析:由于我们只是将jdk安装了,但是操作系统无法识别安装程序中的可执行程序,所以报错。

解决办法:准备配置环境变量。右击计算机->点击属性->选择高级系统设置->选择环境变量->在系统变量找到path,将路径拷贝进去即可

第二步:重启cmd之后,进入到Demo.java文件的所在目录,依次执行javac Demo.java,和java Demo。即可获取到正确的结果。

2-5-9:环境变量的一些其他配置

问题1:编译和运行.java文件以及.class文件时,所在目录和文件所在目录不在同一个目录。

解决办法:编译时,通过使用

javac 路径\文件 例子:javac c:\User\wawjyh\Demo.java

解决办法:执行时,通过使用

java -classpath 路径\ 文件名 /**注意后面的空格**/ 例子:java -classpath c:\User\wawjyh\Demo

解决办法2:设置classpath

设置classpath的缺点,一般情况下,设置完classpath之后首先会在当前目录下寻找.class文件,如果没有则去classpath设置的路径下寻找.class文件。

问题2:设置JAVA_HOME

如果要更改jdk版本,需要重新再指定一次jdk版本,比较麻烦,可以直接设置javahome,避免多次设置值。具体设置如下

PS:设置完成之后一定记得重启cmd即可配置生效。

1.1编写第一个Hello World 程序

在任意一个目录下新建一个后缀名是.java的文件。(注意文件的文件名首字母要大写)

在通过notepad++编写文件内容,下载地址;

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

PS: 在上述文件中的内容,要注意第一点,就是class后跟的是当前class的名称;注意Java中是以类为单位的,这里的class翻译为类。类的名称是Demo01,你会发现类名和你.java的文件名是保持一致的,必须这样,在后续内容中我会说明原因。

打开cmd,通过cd命令进入到当前.java文件的所在目录:

通过javac命令编译当前Demo01.java文件:

在code文件夹下就会多一个.class的文件,这个文件就是编译之后的字节码文件:

通过java命令执行当前Demeo01.class文件

这里要注意,java命令本身就是执行.class字节码文件,不需要编写后缀名称。在上一次的分享内容中已经强调过了。

(三)常见错误

3.2.1 文件名和类名不一致问题

3.2.1.1 报错信息:错误: 类Demo是公共的, 应在名为 Demo.java 的文件中声明

C:\Users\wawjy\Desktop\code>javac Demo01.java Demo01.java:1: 错误: 类Demo是公共的, 应在名为 Demo.java 的文件中声明 public class Demo{ ^ 1 个错误

3.2.1.2报错阶段:编译阶段

3.2.1.3 解决办法:

改变class类的名称,将Demo改为Demo01,类名和.java文件的文件名保持一致。

改变.java文件的文件名称,将Demo01.java改为Demo,将文件名称和类名保持一致。

3.2.1.4 结论

在一个.java文件中,文件的名称要和编码中的类的名称保持一致,这里类必须要保证是public修饰的。我们在一个.java文件中将声明为public修饰的类,称之为主类,可以这样讲,叫一个.java文件的文件名称要和主类的类名保持一致。

3.2.2 一个.java文件中编写多个public修饰的类

3.2.2.1 代码案例

public class Demo{ public static void main(String[] args){ System.out.println("hello world"); } } public class T{ }

1.2.2.2 报错信息:错误: 类T是公共的, 应在名为 T.java 的文件中声明

>C:\Users\wawjy\Desktop\code>javac Demo.java Demo.java:6: 错误: 类T是公共的, 应在名为 T.java 的文件中声明 public class T{ ^ 1 个错误

1.2.2.3 报错阶段:编译阶段

1.2.2.4 解决办法:

将class类T的修饰符public去掉。

1.2.2.5 结论

在一个.java文件中,只能存在一个public修饰的类。但是可以编写多个普通的class。总结上述两条,可以这样说:在一个.java文件中只能存在一个被public修饰的类,这个类称之为主类,主类的名称要和.java文件的文件名保持一致

3.2.3 没有定义完整的main方法

3.2.3.1 代码案例

C:\Users\wawjy\Desktop\code>javac Demo.java C:\Users\wawjy\Desktop\code>java Demo 错误: 在类 Demo 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application

3.2.3.3 报错阶段:执行阶段

3.2.3.4 解决办法:

将main方法定义为上面报错信息中一样的内容: public static void main(String[] args)

3.2.3.5 结论

在一个类中,我们将定义为public static void main(String[] args)这样格式的方法称之为主方法,主方法是程序的入口点,程序进入主方法之后依次执行里面的代码,在编译阶段,由于Demo中并没有语法错误,所以编译通过,但是在执行过程中,发现缺少程序的入口点,没有main方法,所以程序报错。注意,这里定义的方法中缺少static且main方法的名称也写错了。

3.2.4 编码中存在中文的标点符号

3.2.4.1 代码案例

public class Demo{ public void mian(String[] args){ //这里的双引号以及分号都是中文的 System.out.println(”hello world”); } }

3.2.4.2 报错信息:在类 Demo 中找不到 main 方法, 请将 main 方法定义为:

>javac Demo.java Demo.java:3: 错误: 需要';' System.out.println(鈥漢ello world鈥?)锛?

3.2.4.3 报错阶段:编译阶段

3.2.4.4 解决办法:

所有的标点符号都要编写为英文的符号,不然编译时期会报错。

3.2.4.5 结论

在整个Java中,所有的标点符号都需要编写英文的符号。

3.2.5:其它常见错误

案例错误描述解决办法案例1,将String编写为string编译错误自己查看一些单词的拼写,大小写千万注意。案例2,字符集合不统一编译错误,出现错误: 非法字符: ‘\uff1b’千万注意字符集合,一般情况下的我们的程序需要注意字符集合的地方: ①:.java文件的本身字符集合(可以通过文件另存为等方式进行更改) ②:cmd本身解码是使用的字符集合是GBK| -------------------------------------- | ------------------------------------------------------------ |
| 案例1,将String编写为string | 编译错误 | 自己查看一些单词的拼写,大小写千万注意。 |
| 案例2,字符集合不统一 | 编译错误,出现错误: 非法字符: ‘\uff1b’ | 千万注意字符集合,一般情况下的我们的程序需要注意字符集合的地方: ①:.java文件的本身字符集合(可以通过文件另存为等方式进行更改) ②:cmd本身解码是使用的字符集合是GBK |
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜