Java初学,基础知识

最近开始学习Java,学习过程中找到的一些资料和笔记,说来惭愧,作为一名程序员,在过去两年时间里,博客园的博客丝毫未见增长,至今始对笔记这些重视起来。

1、JAVA  SE、JAVA  EE和JAVA  ME有什么区别?

Java的发展到现在已经不单纯仅仅是一种语言,从更加广泛的范围上来说,Java代表了一个技术体系。在这个体系中,JAVA SE、JAVA EE、JAVA ME则分别代表了不同的方向。

Java SE全称为:Java Standard Edition (J2SE也就是Java SE)标准版

Java SE版本为Java程序提供了最基本的环境,是Java技术的核心和基础。Java EE和Java ME都建立在Java SE的基础之上。

重点学习:集合类、文件操作、I/O流、线程、序列化和GUI窗体编程等内容

Java EE全称为:Java Enterprise Edition (J2EE也就是 Java EE)企业版

Java EE是基于服务器分布式企业应用提供开发和运行环境,是目前Java应用最广泛的部分。Java EE不仅继承了Java SE的许多优点,同时还提供了EJB、JSP、Servlet、XML的全面支持,降低了企业级开发的复杂度。

重点学习:JSP、Servelet、JDBC、EJB以及Struts、Spring、Hibernate等轻量级框架

Java ME全称为:Java Micro Editon (J2ME也就是Java ME)微缩版

Java ME为嵌入式应用提供开发和运行环境

重点学习:配置(Configuration)和简表(Profile)等

2、JAVA语言的运行机制如何?

计算机高级编程语言按照程序的执行方式分为:编译型语言和解释型语言

编译型语言:专门的编译器,针对特定的操作系统将源程序代码一次性编译为计算机能识别的语言(C、C++)

解释型语言:使用专门的解释器,将源程序代码逐条地解释成特定平台的机器指令,解释一句执行一句(PHP、ASP等)

Java字节码具有平台无关性,所以可以跨平台,只是Java虚拟机需要对应相应平台

Java语言并不属于以上分类,Java是编译型和解释型的综合体

首先,Java采用通用的编译器将源程序编译为与平台无关的字节码文件(class文件)

然后,Java虚拟机(JVM)对字节码文件解释执行

下图为Java代码的具体的执行过程:

3、什么是JVM?有什么作用?工作机制?

定义:

JVM(Java Virtual Machine)意思为Java虚拟机。可在实际计算机上模拟各种计算机功能。有自己完善的硬件架构,例如处理器、堆栈和寄存器等还具有相应的指令系统。

作用:

JVM中类的装载是由类加载器(ClassLoader)和它的子类实现,其负责在运行时查找和装入类文件的类。

1、JVM是Java字节码的执行引擎,为Java程序的执行提供必要的支持。

2、优化Java字节码,使之转化为更有效率的机器指令。

3、JVM屏蔽了与具体操作系统相关的信息,Java程序生成能够在JVM上运行的字节码文件(class文件),JVM负责将每一条要执行的字节码送给解释器,解释器再将相应的字节码转化为对应平台的机器指令并执行,由此实现跨平台。(不同平台,不同的JVM)

工作原理:

JVM在整个JDK中处于最底层,负责与操作系统的交互,用来屏蔽操作系统环境,提供一个完整的操作系统环境。

操作系统中的JVM通过JDK中的java.exe来实现,主要通过以下步骤:

(1)创建JVM装载环境和配置

(2)装载jvm.dll

(3)初始化jvm.dll

(4)调用JNIEnv实例装载并处理class类

(5)运行Java程序

4、什么是JRE(J2RE)?

简介:JRE是Java Runtime Enviroment的简称,及Java运行时环境,是Java程序运行的必要环境集合,主要由:Java虚拟机、Java平台核心类以及若干支持文件组成。

Sun公司的JRE产品包括:Java Runtime Enviroment和Java Plug-in Java Runtim Enviroment两部分,是可以运行、测试和传输应用程序的Java平台。

如果需要在浏览器中运行Java Applet程序,JRE需要辅助软件:Java Plug-in。该软件可以使Java Applet和JavaBeans组件在使用Sun公司的JRE环境的浏览器环境中运行。该软件可以在Navigator和IE中,微软自带的虚拟机对Java环境支持并不完全,最好安装一个Sun公司的JRE或者JDK。

JRE的版本管理:

同一台计算机上安装多个不同版本的JRE并不影响程序的运行,因为控制台使用java.exe工具执行java程序时,操作系统将按照如下顺序查找JRE环境:

(1)先查找当前目录下是否有JRE

(2)再查找父目录下是否有JRE

(3)接着再在环境变量PATH指定的路径中查找JRE

(4)注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Enviroment\查看 CurrentVersion的键值指向哪一个JRE

最常用的是在PATH中查找JRE环境,一般情况下,每一种Java软件在运行之前都会在批处理文件之中临时设置PATH值,然后把自己使用的JRE路径放置在PATH路径的最前端,所以肯定会使用自带的JRE,不会造成版本混乱

JRE的基础类库:

JRE自带的基础类库主要在JRE\lib\rt.jar文件中,该文件包括JAVA 2平台中运行的所有类库,与JRE的版本一致。

程序运行时,ClassLoader查找和加载程序引用到的基类库和其他类库。

基类库:ClassLoader会自动到rt.jar中加载(操作系统通过PATH环境变量定位JRE,再确定基类库的位置)

其他的类库:ClassLoader在环境变量CLASSPATH中指定的路径搜索,按照先来先到的原则搜索,放在CLASSPATH前面的类库优先被搜到

由此可知:在JAVA程序启动之前,先设置好PATH和CLASSPATH的环境变量

时间: 2024-08-01 07:48:41

Java初学,基础知识的相关文章

黑马程序员——Java集合基础知识之Map

Map概念 要同时存储两个元素Key和Value,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 当数据之间存在映射关系的时候,考虑使用Map集合. Map常用方法 如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值.put会返回来先添加的值,后添加的值会覆盖原有的值. Map tm =new TreeMap(); tm.put (key, value);//MAP没有add tm.remove (key) ;//去除一个key和对应的value,若不存在key返回nu

黑马程序员——Java集合基础知识之Collection

集合基础知识--Collection Java中集合框架由常用的Collection接口和Map接口组成,而Collection接口又有两个子接口,是List接口和Set接口,常用的集合框架由这三个类组成. List接口的功能方法 List的使用最为简单,创建集合,通过add方法添加元素,get方法获取元素,通过迭代器获取元素.List接口存放的数据无序的,添加速度快,但是查询速度慢,因为查询的时候必须遍历,每次都重头开始,效率较低.常用实现类有ArrayList,LinkedList. Lis

什么才是java的基础知识?

近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. 我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家差不多.编码的前几年,很长一段时间觉得java简单,开发实现各种功能都很轻松,代码写起来根本不费劲(主要是因为写的代码都是一些功能业务逻辑).但同时自己心里明白,自己其实没有什么水平,自己这3,4年以来学懂的东西就那么多,其他人几个月就可以

java多线程基础知识

1.ThrTest.java 继承Thread类方式 public class ThrTest extends Thread { private String name; public ThrTest() { } public ThrTest(String name) { this.name = name; } public void run() { for (int i = 0; i < 5; i++) { System.out.println(name + "运行 " + i

黑马程序员——java多线程基础知识1

多线程 进程是一个正在执行的程序. cpu在同时执行这些程序,其实是跳跃式的,做快速的切换,时间很短.一个进程可能存在多条路径.迅雷的多路径.每一个进行执行都有一个执行顺序,该顺序是一个执行路径,或这叫一个控制单元.每一个进程至少有一个线程,线程就是进程中的一个独立的控制单元,线程控制进程的执行.jvm启动的时候会有一个进程就叫做java,exe,该进程中至少有一个线程在控制Java程序的执行 ,而且该线程的执行代码在 主函数中.该线程称为主线程.虚拟机至少也有两个线程,一个主线程执行,另一个负

黑马程序员——Java多线程基础知识2

多线程协同 线程间的通讯:我们对资源的操作动作不同,比如说两个卡车一个拉煤一个装煤.但是他们共享了一个资源. 怎么样把这个资源拿出来?怎样把车装满?这个资源当然是一个类,他里面的组成元素就是对象!!现在我们就要有操作对象的思想了,我用对象把这车装满,现在一车装一个对象. 等待唤醒机制: 用的不是sleep是wait.flag标记,这是两人沟通的方式.其实每个标记就要做一次等待或者notify,判断wait,改值notify.线程池.notify唤醒里面的线程,按顺序唤醒.wait和notify必

Java 接口基础知识

一.Java接口基础知识 1, Java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承. 2, 与Java接口相关的设计模式: 1, 定制服务模式 设计精粒度的接口,每个Java接口代表相关的一组服务,通过继承来创建复合接口 2, 适配器模式 当每个系统之间接口不匹配时,用适配器来转换接口 3, 默认适配器模式 为接口提供简单的默认实现 4, 代理模式 为Java接口的实现类创建代理类,使用者通过代理来获得实现类的服务 5, 标识类型模

Java Web基础知识之Filter:过滤一切你不想看到的事情

不要相信客户端, 所以做后端的人都应该铭记的事情.因为前端传过来的数据并不总是合法和有效的,所以后端是对访问资源的最后一道保护伞.之前我们在Spring中说到过AOP编程,AOP基础知识,它就可以在执行我们的方法之前进行一些预处理和验证来保护后端的资源.不难想到她的实现方式和本篇要说的过滤器的实现原理应该是相同的,都是通过Java的动态代理实现的(自己的理解). 在Java Web的开发中,过滤器用于拦截请求,并对ServletRequest对象进行处理,我们可以想到的,它可以用来验证权限.加密

初识Java及基础知识

java不仅仅是一种程序设计语言,他还是一个完整的平台,有一个庞大的代码库.首先你要做的,可能需要下载 jdk 包,下载和安装,自行百度. 下载完 jdk 之后,JDK目录树如下:  目录结构 描述 bin 编译器和工具 demo 演示 docs HTML格式的类库文档(解压 2sdkversion-doc.zip 之后j) include 用于编译本地方法的文件 jre Java 运行环境 lib 类库文件 src 类库源文件 java 中基本程序设计会用的基础知识:数据类型.变量.运算符.字

java正则表达式基础知识(转)

1基础 2.1 简单字符类 构造 描述 [abc] a,b或c [^abc] 除a,b或c外的字符 [a-zA-Z] a至z 或 A至Z [a-d[m-p]] a至d 或 m至p [a-z&&[def]] d,e或f @Test public void testChar() { //匹配 b,c或d assertTrue("d".matches("[bcd]")); //匹配除 a,b,c 以外的字符 (否定) assertTrue("d&