出处: https://www.jianshu.com/p/d6fa6831bec6
本次主题模块模板javase到javaee的课程文档内容。如果你也喜欢编程,可以加老薛的qq:1811112688,一起学习,一起进步。
1:唯手熟尔(编程一定是建立在多敲的基础上的)
2:明日复明日,明日何其多(学习过程中的问题不要遗留到第二天再解决)
3:工欲善其事,必先利其器(学会使用百度、google等工具,会自己解决问题)
4:三人行必有吾师(同学之间一定要互相帮助,相互学习。遇到问题互相讨论)
选择第一门编程语言,个人还是比较建议从以下几个维度去考量。
学习周期和学习成本
市场占用率和行业前景
你是否真的愿意从事开发工作或者从事IT方向?
•计算机的诞生: 1946年2月14日,在美国宾夕法尼亚大学,世界上第一台电子数字计算机ENIAC。
•第一代 电子管计算机(1946-1957)特点是操作指令是为特定任务而编制的,体积大,每种机器有各自不同的机器语言,功能受到限制,速度也慢,维护困难且价格昂贵。在软件上,通常使用机器语言或者汇编语言来编写应用程序
•第二代晶体管计算机(1958-1964)在整体性能上,比第一代计算机有了很大的提高。同时程序语言也相应的出现了,如Fortran,Cobol,Algo1 60 等计算机高级语言。
•第三代 中小规模集成电路计算机(1965-1971)20世纪60年代中期,随着半导体工艺的发展,成功制造了集成电路。中小规模集成电路成为计算机的主要部件.在软件方面,有了标准化的程序设计语言和人机会话式的Basic语言,C语言。
•第四代大规模和超大规模集成电路计算机(1971-2018)随着大规模集成电路的成功制作并用于计算机硬件生产过程,计算机的体积进一步缩小,性能进一步提高,出现了精简指令集计算机,在软件方面,人们发现Java、C++等语言由于具有“面向问题”、“非过程化程度高”等特点,可以成数量级地提高软件生产率。
•目前的发展趋势是向巨型化、微型化、网络化和智能化这4个方向发展。
–巨型化是指具有运算速度高、存储容量大、功能更完善的计算机系统,其运算速度一般在百亿次每秒、存储容量超过百万兆字节。主要用于航空航天、军事、气象、人工智能、生物工程等学科领域。
–微型化得益于大规模和超大规模集成电路的飞速发展,微处理器自1971年问世以来,发展非常迅速,几乎每隔两三年就会更新换代一次,这也使以微处理器为核心的微型计算机的性能不断跃升。
–网络化是指利用通信技术和计算机技术,把分布在不同地点的计算机互连起来,按照网络协议相互通信,以达到所有用户都可共享数据和软硬件资源的目的,现在,计算机网络在交通、金融、企业管理、教育、邮电、商业等各行各业中得到广泛的应用。
–智能化就是要求计算机能模拟人的感觉和思维能力,也是第五代计算机要实现的目标。
–展望未来,计算机的发展必然要经历很多新的突破。从目前的发展趋势来看,未来的计算机将是微电子技术、光学技术、超导技术和生物技术相互结合的产物。
image
机器语言:典型的2进制文件 和计算机交流
汇编语言:通过大量的助记符表示一些基本的操作指令 完成计算机沟通
高级语言:通过常用的英语指令编写程序 完成沟通
常见的高级语言:除了之前提到过的以外
ortran: 是IBM在1954年提出的。主要用在要求复杂数学计算的科学和工程领域。现在仍然被广泛使用,尤其是工程领域。
COBOL: 于1959年提出。主要用于大量精确处理数据的商业领域中,比如金融、银行。今天,仍然有超过一半的商业软件使用COBOL编写。有将近100万人使用COBOL编程。
PASCAL:几乎和C同时提出。是nicklaus wirth教授为了大学教授编写的。由于没有大厂商和政府的支持,只是限于大学教育这一块。
ADA: ada以pascal为基本参照,是美国国防部(DOD)为了编写他庞大的命令和控制系统软件而设计的。他的一个重要的特性就是多任务,使用它编写的程序可以同时处理多项事务。JAVA也支持多线程。
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等等 使用简答 没有指针
安全的:
没有指针 提供了内存管理机制 垃圾回收机制 安全机制等
完全面向对象
封装 继承 多态 语法更加清晰 所需要资源更少 后期更加利于拓展
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-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目录中有几个常见的执行程序需要注意一下
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即可配置生效。
集腋成裘,积沙成塔。没有不成功的,只有自己放弃的。如果想每天都有Java资料学习,可加码歌悠悠q:1811119218 获取。