重温JavaSE01

安装JDK(以后会安即可)

自己安装,我自己的jdk位置和环境变量配置:
在这里插入图片描述

安装IDEA(了解)

自己安装

计算机语言的发展史:(重点)

第一代是机器语言,第二代是汇编语言,第三代是高级语言。
java是由SUN公司研发的

JDK版本的更新(偏重点)

Java Version SE 5.0(面试问过)

开发代号为Tiger(老虎),于2004-09-30发行。

引入的新特性包括:

引入泛型;

增强循环,可以使用迭代方式;

自动装箱与自动拆箱;

类型安全的枚举;

可变参数;

静态引入;

元数据(注解);

引入Instrumentation。

Java Version SE 7

开发代号是Dolphin(海豚),于2011-07-28发行。

引入的新特性包括:

switch语句块中允许以字符串作为分支条件;

在创建泛型对象时应用类型推断;

在一个语句块中捕获多种异常;

支持动态语言;

支持try-with-resources;

引入Java NIO.2开发包;

数值类型可以用2进制字符串表示,并且可以在字符串表示中添加下划线;

钻石型语法;

null值的自动处理。

Java Version SE 8

开发代号是Spider(蜘蛛),于2014-03-18发行。

支持 lambda支持;

增强日期与时间API的功能;

对垃圾回收的性能也进行了改进;

并且移除了permgen区。

Lambdas表达式与Functional接口

接口的默认与静态方法

方法引用

重复注解

更好的类型推测机制

扩展注解的支持

java特性和优势(记开头的专业术语(内容简单过一下))

 跨平台/可移植性

这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。

 安全性

Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。

 面向对象

面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。

 简单性

Java就是C++语法的简化版,我们也可以将Java称之为“C+±”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。

 高性能

Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接待C++的效率。

因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

 分布式

Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。

 多线程

多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

 健壮性

Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。

总结:一句话:java很好!

但是,并不是说学习了java,以后所有的东西都要用java开发了:某些领域其他语言有更出色的表现,比如,Objective C和后来的Swift在iOS设备上就有着无可取代的地位。浏览器中的处理几乎完全由JavaScript掌控。Windows程序通常都用C++或C#编写。Java在服务器端编程和跨平台客户端应用领域则很有优势。

只能说,不同的语言之间,平分秋色!

6.java的核心机制(重点)

【1】垃圾收集机制

垃圾收集的目的在于除掉不再使用的对象,当对象建立的时候垃圾收集期,就开始监控对象的动态情况,垃圾收集主要是对内存的释放。创建对象的时候申请一个空间

​ 1.不再使用的内存空间应回收—》垃圾收集;

​ 2.Java消除了程序员回收无用内存空间的职责;提供一种系统级线程跟踪存储空间的分配情况。在JVM的空闲时,检查并释放可被释放的存储器空间;相比c++,开发人员负责要自己收回无用内存。

​ 3.垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预;

​ 4.GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄露。

后续:

更高级:

1.垃圾收集器有几种

2.垃圾收集器底层原理剖析

3.垃圾收集器算法,优化

【2】跨平台原理-------------虚拟机JVM

在这里插入图片描述
java Demo1命令的时候jvm背后的操作步骤:

  1. 启动jvm虚拟机
  2. 调用类加载器 classloder ----去寻找字Demo1节码文件
  3. 如果没找到:找不到main主程序
    如果找到了,类加载器将字节码文件中的代码,加载到虚拟机里去。
  4. 调用jvm虚拟机里的解释器 一行一行将字节码解释成 010101 的可执行文件。 C是源文件跨平台,Java是字节码文件跨平台`
    在这里插入图片描述

总结

JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的”虚拟计算机”。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责将Java字节码解释运行,边解释边运行,这样,速度就会受到一定的影响。

不同的操作系统有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。 Java虚拟机是实现跨平台的核心机制。如图所示:

其他:(重点)

JavaSE是java基础
JavaEE是java服务器
JavaME是java移动端

编写.java源文件、编译生成.class(字节码文件)、虚拟机翻译字节码文件生成编译器可识别的.exe可执行文件

代码中要求源文件名字和类名必须一模一样:(public修饰的类必须和原文件名一样)

(程序中可有多个类,但只能有一个public修饰的类)(有多少类编译生成多少.class文件) (内部类不算)

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值