JAVA从头回顾

Wesley13
• 阅读 539

概述

        前段时间忙于面试,在面试过程中,发现工作几年,有很多基础有些淡忘了,现在重新从基础开始回顾,JAVA从入门到放弃系列博文将会记录一下基于JDK1.6在工作中不常用而容易忘记,但是有必须要掌握的一些知识点, 本篇先从java环境相关的知识点写起

JDK和JRE关系

    开始学习JAVA开发时,首先就需要大家配置JAVA环境,这里就不赘余JAVA环境配置了,大家最开始认识JAVA都是从JDK安装学起

JDK

    JDK全称为Java Development Kit ,JAVA分为javaSE,javaEE,javaME,java分别为java SE提供了JDK,为javaEE提供了java EE SDK,为javaME提供了java ME SDK三个开发包

平时开发搭建的是java SE的JDK环境java EE SDK中也包含了JDK,JDK是java开发的软件包,它包含了 Java系统类库、运行环境 和Java工具,JDK安装选项中有开发工具,演示程序及样例、源代码、公共JRE、java DB五部分,其中公共JRE和javaDB我们不需要安装。

  1.  开发工具:它包含了编译器、调试器和其它工具,安装在了JDK目录的bin目录的工具命令和lib目录下实际执行程序。
  2. 演示程序:它提供了JDK的演示代码,初学者可以学习这里面的演示代码,安装在JDK目录的demo目录下
  3. 样例:它提供了JDK的简单示例代码,初学者可以学习这里面的示例代码,安装在JDK目录的sample目录下
  4. 源代码:它就是java提供的核心类库源代码,安装在JDK目录下的src.zip
  5. 公共JRE:不建议安装,实际开发工作中,基本不需要在网页运行Applet,所以无需单独安装JRE,直接使用JDK目录下的JRE目录即可,
  6. javaDB:不建议安装,实际开发工作中,均使用Mysql,oracle等数据库,不会使用到javaDB,它对应的目录是JDK目录的DB目录

    oracle收购了sun公司,java对应的SDK均需要在oracle官网(www.oracle.com)下载,如下图点击相应链接进行下载

JAVA从头回顾

JRE

     JRE的全称是Java Runtime Environment,它包含了Java Runtime Environment和Java Plug-in两部分。

     Java Runtime Environment(JRE)顾名思义,它是java的运行环境,如果只是运行java程序,只需安装它即可,它 Java虚拟机(jvm)、Java核心类库和支持文件。

     Java Plug-in是允许Java Applet和JavaBean组件在Java Runtime Environment(JRE)的浏览器中运行

由于实际工作中在网页执行java程序的可能性微乎其微,所以Java Plug-in基本无用武之地了。

classpath

    有人说我在实际开发中用过classpath,我熟悉它,这就暴露了我们的年龄,擦泪继续,因为在JDK1.5以上版本不设置classpath也可以正常开发运行java程序。JDK1.4以下版本通常需要设置classpath。

    classpath配置作用是什么呢? JDK1.4以前,当我们使用java命令运行java程序时,jre要根据classpath路径去找需要运行的java程序,JDK1.5以上做了优化,jre会自动在运行java命令的目录去寻找对应的类,所以无需配置此选项。

    在JDK1.5以上版本不建议配置它,当配置了classpath,jre还是会根据classpath配置去寻找运行程序,其中就有配错的风险,配错后,就容易出各种问题了。如果要配置它,一点要在前面加上英文符号的点, 即在当前目录搜索java类,否则在运行java程序时会报 NoClassDefFoundError。

java垃圾回收机制

    java垃圾自动回收机制,解决了程序员的一大头疼问题。

    在C/C++编程语言中,需要程序员自己控制内存回收,容易造成以下问题

  1.     忘记及时回收造成内存泄漏
  2.    错误回收核心类库,导致程序异常甚至崩溃

    java编程语言,则由JVM自行回收无用对象,不同的JVM垃圾回收机制不同。通常它们垃圾回收有以下特点

  1.     垃圾回收是回收无用对象,也就是JVM堆内存的空间,它只回收内存资源,所以 IO资源和数据库连接资源等其他非内存资源需要程序员手动回收
  2.    垃圾回收一般是在内存资源紧张或者CPU空闲时启动回收,回收时间不定,程序员无法控制,只能告知JVM某些对象可以回收了。

下一篇将会回顾面向对象相关的知识点,欢迎大神提出异议拍砖共勉。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
java基础知识随身记
2018年11月12日20:51:35一、基础知识:1、JVM、JRE和JDK的区别:JVM(JavaVirtualMachine):java虚拟机,用于保证java的跨平台的特性。  java语言是跨平台,jvm不是跨平台的。JRE(JavaRuntimeEnvironment):java的运行环境,包括jvmjava的核心类
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
京东云开发者 京东云开发者
5个月前
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这