`
hbkh2000
  • 浏览: 203755 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java积累/问题

阅读更多

积累:

1、JVM,JRE, JDK关系:
 JVM : Java Virtual Machine(Java虚拟机) 。所谓“虚拟机”顾名思义就是模拟出来的东西。就像是我们在用电脑看电视,但是电脑里并没有像电视机里面一样的硬件支持,但是我们仍然可以从电脑里接受电视台的节目。那是因为我们编写了一个可以模拟电视机硬件工作的软件运行在电脑的平台上面的原因。同样JVM就是模拟了电脑的硬件,它同样有着像CPU一样可以执行代码的功能。它的实现具体有:指令集 寄存器组 类文件格式 栈 垃圾收集堆 内存区。可以把它理解成是专门用来执行Java程序的一台机器。也就是说JVM提供了Java执行的硬件平台。JVM上执行的代码都存放在 .CLASS 的文件中。JVM只执行字节码文件。

  JRE : Java Runtime Environment(Java运行环境)。就是可以运行Java程序的地方。就像是我们要在电脑上运行一个视频软件的时候必须在Windos或者是Linux等操作系统上一样。那我们就可以把它看做是一个操作系统。也就是说JRE提供了Java程序执行的软件平台。在运行Java的过程中除了需要有JVM执行Java代码这个动作外,还需要Java API(Application Programming Interface,应用编程接口)说简单的就是“类库”。Java程序在运行中没有这些API是不行的,所以JRE包含JVM

  JDK : Java Development ToolKit(Java开发工具包)。我们有了硬件(JVM)和软件(JRE)两个平台后就可以做我们自己想做的事情了。JDK就是我们用来做事情的工具,它包括JRE还有其他工具。我们所说版本的不同,也就是说它里面的工具有差异。就像是你不同的工具箱里放着不同的工具一样。举个例子:最常用的一个就是javac,它是把.java的文件翻译成.class文件的工具然后让JVM来执行.class文件中的字节码。(就像电脑的CPU只认识0或1的道理)

  如果一台计算机的需求只是运行Java程序,而不是去编写Java程序的时候,它只需要安装JRE就可以了。现在大家知道JVM JRE JDK,这些东西到底是什么了吧。

 

2、每个项目最重要的十件事

   原因是:(1)新的开发者很快的就能够加快这个项目的进程,(2)用户能够容易的安装你的产品,而且也很容易去维护。

   1>版本控制;

   2>命令行编译脚本:我大部分的时间都在用Eclipse,他可以为我做所有的编译,单元测试和代码覆盖(EclEmma  )。不过您需要命令行脚本去不断的build(通常是使用Ant   脚本)。你的脚本应分为:
            1. 编译代码
            2.编译测试
            3.生成javadoc
            4.运行测试与代码覆盖:我使用Emma   或cobertura
            5.生成报告:测试的通过/失败和覆盖
            6.建立一个分布的JAR。
    3>默认的嵌入式Web服务器 :如果您正在建设一个Web应用程序,我推荐Jetty 作为您的Web容器。 Jetty 最酷的地方是您可以在您的main函数中新建服务。使用Tomcat 时,你要导入一个war文件,并将它添加到Tomcat  的目录中,然后等待Tomacat “安装” ,这样就会比较麻烦。但使用Jetty 您可以通过一个main函数开始您的应用(就像一个正常的桌面APP )并通过你的main函数来启动Jetty 。您的开发者更容易去开发/调试,您的客户也更容易去部署。

    4>.默认情况下嵌入式数据库 :没有什么比一个复杂的数据库安装说明更复杂。所以我使用一个嵌入式数据库,例如HSQLDB 。 在开发和测试中,我让系统采用一个内存数据库,然后我才使用这个数据库的硬盘版本。 但在这两种情况下客户/开发做的没有不同,这是最重要的。如果生产环境需要大负载,我再提供命令行选项,切换到外部数据库如Oracle数据库。

    5>guice 依赖注入 :如果您想要一个可维护性,可测性和容易理解的code-base,您需要使用依赖注入 ( DI    )作为一个设计模式。一个自动化的DI框架,使您的工作更轻松。我使用guice我想这是最先进的DI投资,同样还有picocontainerspring
    6>易于安装/运行 :现在考虑的是让顾客更容易的去尝试你的产品。 我喜欢给我的客户看一个JAR文件,并告诉他们“双击”来启动JVM , Web服务器,数据库,安装架构,并推出网络浏览器(基于本地)。或您的应用通过Java Web Start   开始,这样你就可以在web页面中一键式安装,这样就不需要安装手册了。 
    a)把主要class放在JAR MANIFAST,这样只要双击就可以加载你的应用。 
    b)把所有的JAR依赖放在主要的JAR文件中,使用JarJar   或者One-Jar-Classloader     。 
    c)给应用提供:内存数据;安装schema; 加载Web的容器; 安装自动提供一个admin用户等等……

3、java开发为什么要配置JDK及Tomcat的环境变量?

   先说不配置tomcat的环境变量为什么tomcat可以运行吧,

   用记事本打开tomcat/bin目录下面的startup.bat
在文本的前一部分有下面的脚本代码
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%CURRENT_DIR%
........
其中的
set XXXXXXXX=******
就是增加一个临时的环境变量.只对当前的进程起作用的,
%cd%是windows控制台程序自带的一个变量.指这个脚本所在的那个目录的路径,
set CATALINA_HOME=%CURRENT_DIR%
自然就是设置一个临时的环境变量CATALINA_HOME...这个就是一些教程里边所要配置的环境变量啦...以前版本的tomcat是要配置的..但是比较新版本的现在都不用了...4.0以后吧..

再来一个就是jdk的JAVA_HOME了...其实也是相类似的
windows版本的jdk安装以后会将安装的路径写入系统的注册表里边的...很多程序不用配置JAVA_HOME是因为那些程序是直接通过读取注册表里边的路径获取了jdk的路径.比如eclipse;  netbeans则是在安装的时候,安装程序会去注册表里边读取jdk的路径,直接把它写到netbeans的配置文件里边去了
而tomcat就没有这样去处理,只是简单地通过环境变量去获取jdk的路径,所以要运行tomcat一般都是要配置环境变量的..如果不配置也可以,修改tomcat/bin/startup.bat...tomcat这样做也是出于跨平台考虑的...因为系统注册表是只有windows系统才有的

 

--------

为什么要设置环境变量原因很简单:首先,java文件要通过javac命令编译生成.class文件,这个编译的命令在java的jdk里面,想要执行它就必须知道它的存放路径,第二,java文件执行的时候执行的是编译好的.class文件,那么就必须知道编译后的.class文件放在了什么地方。(执行用的是java命令,他和javac同在jdk里面)。基于上面的两个需要就必须配置环境变量,其实就是要两个路径。

 

 4、我觉得学API分三个步骤:
1、熟悉API的结构,例如API文档的格式,以及如何查阅等基础技能
2、熟悉某种技术,其实是一个包或者多个包的结构,写一个简单的具有一定功能的程序,例如学习界面包,就做一个包含界面和事件处理的小程序等。
3、举一反三,在实际的开发中熟悉需要的功能。

 

 http://www.onjava.com/pub/a/onjava/api_map/index.html

   java api 结构

 

 

 教你 Java Api使用的三个网站:

 
第一个
http://www.java2s.com/Code/JavaAPI/CatalogJavaAPI.htm  (很好)
第二个
http://www.javaref.cn (好像不行)
第三个
http://www.exampledepot.com/?l=ex

 

5、java被编译后,为什么有时还有个$1.class的文件呢?

 

 

 

 

 

 

问题:

 

1、我们程序进行优化,一般流程是怎么样的,可以优化那些方面,这些方面又有什么原则?

   

 

 

2、如何保证工作学习两不误?

     最好 是把 工作、学习、娱乐爱好放在一起,那就好了。

 

 

3、 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    JAVA 学习/工作 笔记

    J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)/LDAP/C++/Portal/即时通讯/数据建模/UML/UML设计工具(Rose、EA、PD等)/移动办公(Android、Symbian、Wap等技术)/项目管理(敏捷开发等)/软件架构...

    java经验积累java经验积累

    本文将基于"java经验积累"这一主题,深入探讨Java的相关知识点,包括类加载器、并发处理、注解(Annotation)、线程池、泛型、自定义注解以及Java与模式思考。 首先,我们来关注"深入探讨 Java 类加载器"。Java的类...

    java知识点积累

    java知识点积累

    JAVA知识技术积累笔记

    【JAVA知识技术积累笔记】 Java是一种广泛使用的面向对象的编程语言,它的跨平台特性使得它在软件开发领域占据着重要地位。本笔记涵盖了几个关键的Java技术领域,包括JSP(JavaServer Pages)、Servlet、Oracle...

    java积累笔记.pdf

    java积累笔记.pdf

    Java常用工具类,多年工作积累整理

    本资料集“Java常用工具类,多年工作积累整理”显然是一个汇总了作者多年编程经验的实用资源。下面将详细阐述Java中的一些常见工具类及其用途。 1. **`java.util.Arrays`**:这是一个非常基础且重要的工具类,提供...

    Java开发常见问题汇总.ppt

    在Java开发过程中,遇到的问题多种多样,从环境配置到代码编写,每个环节都有可能出现问题。以下是一些关于Java开发的常见问题及其解决方法。 首先,确保Java开发环境的正确安装和配置。在Windows系统中,可以通过...

    java jsp IO包 教程 新手入门

    ### Java JSP IO包 教程 新手入门 #### 一、引言 ...随着实践经验的积累,开发者还可以探索更高级的特性,如NIO(New I/O)等,以应对更加复杂的应用场景。希望本文能帮助大家更好地入门Java I/O。

    开发十六年的积累(java常用类)

    "开发十六年的积累(java常用类)"这个主题,无疑是对一位资深开发者多年经验的结晶,其中包含了对Java常用类的深入理解和实践应用。 首先,让我们从Java的基础类库开始。Java.lang包是所有Java程序的基础,包含了...

    java开发常见问题

    java开发工作两年遇到的技术问题以及查找到的解决方案还有一些积累,涉及前端技术,android开发,java后台以及数据库sql优化,session共享,单点登录,kafka入门,websocket,线程安全等。

    【资源免费下载】Java代码积累丨大话设计模式(Java实现版本)、线程协作

    Java代码积累:并发 设计模式 数据结构 使用容器 实用 类 基础知识 并发性 演示线程的生命周期 生产者-消费者 设计模式参考《大话设计模式》 工厂简单模式 创造型模式 工厂方法模式 抽象工厂模式 原型模式 建造者...

    Java积累文档

    程序实现树形,J2EE_6.0_API.chm,JAVA6交口称赞3.0.chm,java编程思想(完整版).chm,Java解惑.pdf,Java日期处理.txt,JAVA设计模式.chm,JDK_API_1_6_zh_CN.CHM,浅谈java内存模型.txt

    Java/c++笔试面试题大全

    在IT行业的招聘过程中,Java和C++作为两种广泛使用的编程语言,经常出现在笔试和面试的考核中。这份“Java/c++笔试面试题大全”显然是一份全面...不断地进行代码练习和实际项目经验积累,将有助于你在面试中脱颖而出。

    java面试资料积累,经验分享.zip

    这份"java面试资料积累,经验分享.zip"压缩包显然是一份宝贵的资源,包含了作者在面试过程中遇到的各类Java问题和经验总结,对于想要深入学习Java或者正在准备Java面试的人来说,无疑是宝贵的参考资料。 一、基础...

    多年Java精华积累

    这篇“多年Java精华积累”文档很可能是作者多年深入学习和实践Java的心得总结,对于初学者和有经验的开发者来说,都是一个宝贵的资源。下面,我们将根据这个主题,探讨一些重要的Java知识点。 1. **Java基础** - ...

    基于JavaWeb精品课程网(源代码+数据库SQL+毕业论文)

    适合人群:工作中项目需要、模板框架实战学习、大学毕业设计参考、找工作项目实战积累等等 统一开发环境:http://www.java1234.com/a/kaiyuan/java/2013/0419/228.html 部署常见问题说明:...

    基于JavaWeb新闻发布系统(源代码+数据库SQL+毕业论文)

    适合人群:工作中项目需要、模板框架实战学习、大学毕业设计参考、找工作项目实战积累等等 统一开发环境:http://www.java1234.com/a/kaiyuan/java/2013/0419/228.html 部署常见问题说明:...

    厚积薄发,Java学习积累

    厚积薄发,Java学习积累

    存储Java版的算法代码实现,以及进行工具类,实用短代码的积累

    存储Java版的算法代码实现,以及进行工具类,实用短代码的积累存储Java版的算法代码实现,以及进行工具类,实用短代码的积累存储Java版的算法代码实现,以及进行工具类,实用短代码的积累存储Java版的算法代码实现,...

    Java精华积累每个初学者都应该搞懂的问题

    每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。

Global site tag (gtag.js) - Google Analytics