Java学习笔记 01、初识Java

简介: Java学习笔记 01、初识Java

一、认识Java


历史介绍


1991年Green项目,开发语言最初名为Oak(橡树)。


1994年,开发组认为Oak非常适合于互联网。


1995年5月,Sun Microsystems公司推出Java程序设计语言(Oak改名Java)。


1996年,发布JDK1,约8.3万个网页应用使用Java技术来制作。


最原始版本Java 1.02版本有250个类,bug较多,其中applet是重点。1.02到1.1版本都算是Java。

1997年,发布JDK1.1,JavaOne会议召开,创当时全球同类会议规模之最。


此时版本有500个类,功能更强,更好用,开始受欢迎,适合于开发图形界面(Awt组件)

1998年,发布JDK1.2,同年发布企业平台J2EE(Enterprise Edition,企业版)。


1999年,Java分为J2SE、J2EE和J2ME,JSP/Servlet技术诞生。


此时有时可以达到平台原始速度,用来书写正规的企业级应用程序或移动应用程序

J2SE(Java 2 Etandard Edition):Java的标准版,用于标准的应用开发

J2EE(Java 2 Enterprise Edition):Java的一种企业版用于企业级的应用服务开发

J2ME(Java 2 Micro Edition):Java的微型版,常用于手机上的开发

J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。

2004年,发布里程碑式版本:JDK1.5,为凸显版本重要性,更名为JDK5.0。


此版本有3500个类,对其语言本身也做了很大改变,更容易开发

2005年,J2SE又叫JavaSE,J2EE改为又叫JavaEE,J2ME又叫JavaME。


2009年,Oracle公司收购SUN,交易金额为74亿美元。


2011年,发布JDK7.0版本。


2014年,发布JDK8.0版本,是继JDK5.0以来变化最大的版本。


2017年,发布JDK9.0,最大限制实现模块化。


2018年3月,发布JDK10.0,版本号也称为18.3。


2018年9月,发布JDK11.0,版本号成为18.9。


现今JavaSE已经出到15版本了,我们暂时只需要熟悉JDK8的语法即可!


说明:对于Java3或Java4是从来没有出现过的,到1.5版本时,由于认为进步幅度太大,需要全新名称,冒出Java5.0,用5来对应1.5。



Java介绍


Java一开始兴起是因为它能够在web浏览器中运行,也被称为Java小程序(applet),它可以嵌套在HTML代码中。


后台开发语言:Java(中大型首选语言)、PHP,Python(中小型)、Go(具有Java效率,又有c++速度),Node.js


再详细介绍下几个Java技术体系平台:


JavaSE:也称为标准版,支持面向桌面级应用的Java平台,提供了完整的Java核心API,所有从事Java开发的都是先从JavaSE开始学起。

JavaEE:企业版,主要用于web应用程序开发,为开发企业环境下的程序提供一套解决方案,包含技术如servlet、JSP等。

JavaME:小型版,支持Java程序运行在移动端(手机、PDA)上平台,针对于移动终端的支持。

Java Card:支持一些Java小程序(Applets)运行在小内存设备(如智能卡)上的平台。


**优点:**舍弃指针,运算符重载,可以自动清理。


Java特点:面向对象,具有健壮性,跨平台性,安全性。


三大特性:封装,继承,多态。



二、认识及安装JDK


1、认识JDK


上述是对Java的初步认识与介绍,我们想要编译Java代码并执行还需要下载JDK。一般来说下载JDK8即可,JDK中的包含了几个内容如下图:



JDK(Java development kit):Java开发工具

JRE(Java runtime environment):Java运行环境

JVM(Java virtuak machine):Java虚拟机

总结一下:JDK=JRE+开发工具集(例如Javac编译工具等),JRE=JVM+JavaSE标准类库


我们再看这张图一目了然JDK、JRE、JVM的关系:




看一下各自包含的内容:




2、安装JDK


配置与测试

JDK下载地址:JDK官网下载地址


下载JDK8即可,直接都默认下一步即可,我是直接放在C盘以防出现其他问题。



两种方式,建议下面第二种方式


安装好之后,就是配置环境变量了:


方式一:直接配置路径,不建议


首先找到你安装JDK路径下的bin目录,复制该路径



接着桌面此电脑右击—属性—高级系统设置—环境变量,在上面的用户变量区域双击path,只有添加如C:\Program Files\Java\jdk1.8.0_201\bin即可!!!


系统变量与用户变量实际上就是覆盖范围不一样而已,用户变量覆盖你登陆的用户,系统变量就是所有用户通用。


方式二:配置JAVA_HOME变量,推荐使用该方式!!!


在系统变量中新建一个变量,变量为JAVA_HOME,值为C:\Program Files\Java\jdk1.8.0_201。需要注意值的路径并不在bin目录里。



然后在系统变量中的path双击后新增两条%JAVA_HOME%\bin 和 %JAVA_HOME%\jre\bin


其中的% %代表获取其中的值,实际上也就是相当于C:\Program Files\Java\jdk1.8.0_201\bin,%%引用变量作用。

此时肯定会有疑问:为什么要配置JAVA_HOME这个变量值呢?


答:方便引用、归一原则方便修改、还有最重要一点就是有些第三方软件会引用约定好的JAVA_HOME变量,若不配置会无法使用。



测试配置是否生效


配置好环境之后,我们打开cmd来进行测试,命令:java -version以及Javac




当出现如上图信息就表示已经安装并配置成功了!!!



配置注意及不生效解决

上面配置过程是按照win10方式的,配置时注意点以及配置后问题


配置注意点:


对于win7用户,编辑用户path变量时,会写在一起,就写在开头并且添加一个;号


对于win10用户,点击用户path变量时,点击新增即可。



出现问题:有时候执行javac执行不了解决方法?


对于win10的用户,将path配置的变量值向上移即可,提高优先级,再去试试是否生效。



3、认识Java虚拟机


之前说到它的特点有个跨平台性,这就离不开Java的JVM虚拟机,同一个java程序,在JVM虚拟机编译之后可以在三个不同的操作系统中都可以运行,如下图:



Java的核心机制:Java虚拟机以及垃圾回收机制。但是Java程序还是会有内存泄漏以及内存溢出的问题。



三、Java的工作方式


工作过程


①首先编写Java源代码文件,名称例如Main.java。


②通过使用JDK中的编译器来运行源代码,若是有错会报错,没有错在同目录下产出字节码文件如Main.class。


编译命令:javac Main.java

这个字节码文件能够被任何支持Java的装置(如jvm虚拟机)转移成可执行的内容,编译后的内容与平台无关。

③执行字节码文件,使用jvm虚拟机来进行读取与执行字节码。


执行命令:java Main java后只需要字节码的前缀名称即可!!!


注意说明


在java源文件中可以声明多个类,但是只能有一个类可以声明为public,并且要求声明public的类的类名与源文件的名称一样,见如下:


//源代码文件名称:Main.java
public class Main{
    public static void main(String[] args){
        ....
    }
}
class AA{
}
class BB{
}


将源代码编译为字节码文文件,例如编译上面java源代码会编译为3个字节码文件分别是:Main.class AA.class BB.class


我们要执行哪个class文件,直接java class前缀名,注意执行指定的字节码文件必须要有main方法否则会报找不到Main方法的错误。



四、javadoc小工具


前言


之前使用了进行编译源代码的java以及执行字节码文件的javac工具,接下来演示另一个工具javadoc,这些都是下载jdk后的bin目录里的执行文件:



正因为我们配置了环境变量,我们才能在其他目录下的cmd中进行使用这些可执行程序,否则只能在这个目录下进行编译执行操作等。



javadoc使用


javadoc.exe:是JDK所提供的工具,能讲注释内容进行解析,从而生成一套网页文件形式体现的程序说明文档。


我们先准备一个java源文件:


/**
文档注释.
这是我的第一个java文档.
@author changlu
@version v1.0
*/
public class Main{
  /**
  这里的main表示入口
  */
  public static void main(String[] args){
      System.out.println("hello world");
  }
}


注意:要使用ANSI编码格式保存,因为windows默认使用的是ANSI,使用其他的话,你中文会变成乱码。


接下来,我们在源代码路径下的cmd中输入:javadoc -d Main -author -version Main.java


Main:表示等会生成一套说明文档目录名称

-author:表示包含@author段

-version:表示包含@version段

Main.java:表示源代码文件

执行完之后,当前执行命令目录会有一个Main文件夹,打开目录中的index.html即可看到HTML形式的说明文档,文档样式如下:



上述只是一个简单的小例子,更多实际用法可以去官网查看:JavaDoc


相关学习文章:使用javadoc命令生成多个包的doc文档、Javadoc 使用详解


五、IDE集成开发环境

使用普通的文本编辑器进行java开发通常效率并不是很高,初学者可以使用Notepad++来进行学习编写,其它的IDE工具包含:JBuilder、NetBeans、Eclipse、MyEclipse以及IntelliJ IDEA。


经常使用的一般是Eclipse和IDEA,Eclipse是免费的,IDEA企业版是需要收费不过可以使用pj的,相对于IDE开发工具来说IDEA是十分人性化使用起来特别舒服,谁用谁知道。


下载途径:微信公众号(软件管家、火耳软件安装等),还有一些网站上也会有。


相关文章
|
7月前
|
Java 编译器 开发工具
Java基础学习笔记——idea篇
JDK由JRE(包含JVM和核心类库)和开发工具箱(如javac编译器和java运行工具)组成。Java项目结构包括Project、Module、Package和Class。IDEA快捷键包括:生成main方法(main psvm)、复制代码(Ctrl+D)、删除代码(Ctrl+Y/X)、格式化代码(Ctrl+Alt+L)、重命名(Shift+F6)等。
58 0
|
7月前
|
监控 负载均衡 Dubbo
|
4月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
1月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
45 0
|
3月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
从Java环境的搭建到实际代码的编写,从基本用法的讲解到底层原理的剖析,深度解析Java基础知识。本文是《Java学习路线》专栏的起始文章,旨在提供一套完整的Java学习路线,覆盖Java基础知识、数据库、SSM/SpringBoot等框架、Redis/MQ等中间件、设计模式、架构设计、性能调优、源码解读、核心面试题等全面的知识点,并在未来不断更新和完善,帮助Java从业者在更短的时间内成长为高级开发。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
|
3月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
|
2月前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
44 0
|
2月前
|
Java 程序员 开发工具
java学习笔记
java学习笔记
46 0
|
3月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
本文是“Java学习路线”中Java基础知识的高级篇,主要对多线程和反射进行了深入浅出的介绍,在多线程部分,详细介绍了线程的概念、生命周期、多线程的线程安全、线程通信、线程同步,并对synchronized和Lock锁;反射部分对反射的特性、功能、优缺点、适用场景等进行了介绍。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
|
4月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
62 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
下一篇
DataWorks