Java入门
C&C++
C贴近硬件,运行极快,效率极高,因此初始程序们用C开发了大量的系统软件,包括操作系统编译器数据库网络系统等等,但C存在指针和内存管理两大枷锁。
对于C的可移植性,对汇编语言来说,汇编针对CPU不同,C比汇编移植性高;
而对应用程序开发来说,C不如Java,因为C语言和硬件相关也是比较大,不同CPU,其编译结果可能不一样。
1982年C++诞生,它兼容C面向对象,应用图形领域和游戏等。缺点复杂。
Java,原拟名oak,语法有点像C,没有指针和内存管理,真正可移植性,编写一次,到处运行(Java虚拟机,JVM)面向对象,类型安全,高质量类库。
构建工具:Ant,Maven,Jekins 应用服务器: Tomcat,Jetty, Jboss, Websphere, weblogic Web开发:Struts,Spring,Hibernate, myBatis 开发工具:Eclipse, Netbean,intellij idea, Jbuilder
-
J2SE 标准版 桌面(桌面程序 控制台开发)(核心)
-
J2ME 移动版 手机(基本死掉了)
-
J2EE 企业版 服务器
-
2006 Hadoop 大数据领域
-
2008 Android 手机端
Java特性和优势
write once,run anywhere (跨平台,JVM)Java跨平台,通过JVMJava虚拟机,屏蔽了底层系统的一些差别
Java性质:简单性 面向对象 可移植性 高性能 分布式 动态性 多线程 安全性 健壮性
JDK JRE JVM
首先了解Java语言的构成:

JDK, Java Development Kit ,Java开发工具,包含图中全部Java相关,包括JRE和JVM,还包含自己的一些工具用于程序开发,比如java和javac,用于编译运行java代码,javadoc可以把Java一些东西生成一篇文档,jar可以把Java打包成一个应用。
JRE,Java Runtime Environment,Java运行时环境,包括JVM
JVM,JAVA Virtual Machine,可以视为一种规范,可以通过软件或者硬件实现,相当于在所有的操作系统上模拟了一个小巧的CPU,去处理Java相关的东西。
虚拟机就是在你电脑里面用软件又制造一个电脑
Java要学习Java代码是如何编译成字节码的
有两种运行方式,一种是解释型,一种是编译型
搭建开发环境
现在JDK已经更新到15了,但是企业中用到最多的是7和8
卸载JDK
-
删除Java安装目录(在高级系统设置-环境变量-JAVA_HOME安装目录)(注意要连包删除,比如安装目录是JDK 15,则要将JDK 15这整个目录都要删除掉)
-
删除JAVA_HOME
-
删除path下关于Java的目录
-
java -version 查看验证
存疑的一点?——我一步一步按照狂神教程是没有删除干净?DOS运行Java命令没有反应(后通过控制面板删除jdk15解决)-是否以后可以直接通过控制面板卸载程序解决呢?
或者两个方法综合一下。
只要能解决的方法,就是好方法。
安装JDK
-
百度搜索JDK8,找到下载地址
-
同意协议(同意协议才能下载)
-
下载电脑对应的版本,我是Windows64
-
.双击下载的jdk.exe程序安装
-
记住安装的路径
-
配置环境变量:JAVA_HOME E:\Environment\Java\jdk1.8
-
配置path变量:
-
%JAVA_HOME%\bin
-
%JAVA_HOME%\jre\bin
-
-
命令行下输入java -version是否测试成功。
ps:Win10变量显示一行:编辑path,前提系统是win10 64位的话,可以在变量值加上C:\Windows\System64;
ps:%..%表示引用,引用JAVA_HOME的路径(你安装的jdk的路径),再指向它下面的bin目录,再找到jre下面的bin目录;---这些是为了使用bin目录下的执行Java的小程序。
ps:
-
bin目录,放一些Java可执行的程序
-
include目录,Java1.8JDK是用C和C++编写的,所以这个目录包含了一些引用的C函数
-
jre目录,jre点开,就是Java运行环境,如果只运行Java的话,有这个jre目录就是足够的了
-
lib目录,lib,是library单词的缩写,这里面放了一些Java的类库文件
-
src压缩包,资源文件,里面放了很多Java类,通过解压可以看到Java的一些基础源代码。
HelloWorld
哈哈,helloworld,所有程序员向世界呐喊的第一声。
仪式感,没哈哈
-
新建一个文件夹,存放代码
-
新建一个Java文件(后缀名为.java)
public class Hello{
public static void main (String[] args){
}
}
/* main()方法,括号里传递参数;
public static void 修饰符关键字
print,打印 打印一句话 */
**外面是个类,里面是个方法**
ps:下载IDEA后,会自动出现上述内容,但在学习期间,还是尽量自己多写几遍
ps:public等关键词不要打错;第一行Hello的名字,要和文件名一样;语句结束有个分号;所有字母的大小写;
-
编译 javac命令,java文件——注意在当前文件目录下进入cmd编译,否则会编译不到。
-
编译完会在当前目录生成一个class文件——如果没有生成哈哈,还没开始学,就遇到了人生中第一个bug.
-
运行class文件,Java class——这里注意和前面的区别是,比用写后缀了,前面编译时,需要写上后缀的。
图片示例:

可能遇到的情况: 每个单词的大小不能出现问题,Java是大小写敏感的 尽量使用英文; 文件名和类名必须保证一致,并且首字母大写 符号使用了中文
Java程序运行机制
编译型,解释型,都有翻译的意思,但时机很重要。Java属于两个类型。
类于:编译--翻译整本书看,解释--翻译一部分看部分
可以想到优缺点:
编译型,编译一次性翻译整本书,完全编译了,电脑只管去执行,执行速度快了,对操作系统的压力也较小,(C/C++等编译型语言开发操作系统)如果书有更新,要重新翻译一遍,代价大(对应着解释型的实时翻译,这边改了,那边翻译,代价小)
解释型,一些网页或服务器脚本,对速度要求没有这么高,可以使用解释型语言,如Java和脚本语言JavaScript。如果翻译的前面部分改变了,要回头去重新翻译,比较麻烦。
Java先经历了一次编译(预编译)生成.class文件(字节码)(这里想到为什么javac了吗?哈哈),把类放到虚拟机里的类装载器里面,经字节码校验器校验,再解释器解释给操作系统,走一步执行一步
ps:随着技术和硬件的发展,编译型和解释型界限愈加模糊,解释型的效率逐渐提高
ps:如果连流程不清楚,一定会像是图中的表情,苦笑不得。
IDEA安装和介绍
IDE,integrated development environment集成开发环境
特性:包括,代码编辑器、编译器、调试器和图形用户界面等工具

浙公网安备 33010602011771号