【码歌】Java逆袭之路,小白系统笔记,持续更新

  • Post author:
  • Post category:java

Java学习手册

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

(一):Readme

1-1:学习编程方法

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

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

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

学习周期和学习成本

市场占用率和行业前景

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

1-3:计算机发展历史

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

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

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

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

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

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

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

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

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

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

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

(二):第一个HelloWorld

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

image

image

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

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

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

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

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

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

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

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

2-2:Java语言发展历史

image

image

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命令

image

image

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

image

image

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:区别:

JDK java development kit java开发包,主要用于做java开发
JRE Java Runtime Environment java运行时环境,主要用于执行测试 java代码
JVM Java 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目录中有几个常见的执行程序需要注意一下

image

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

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

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

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

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

image

第二步:重启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​

image

 

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

问题2:设置JAVA_HOME

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

image

image

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

集腋成裘,积沙成塔。没有不成功的,只有自己放弃的。如果想每天都有Java资料学习,可加码歌悠悠q:1811119218 获取。


版权声明:本文为u014332333原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。