一、JDK个版本之间的区别:

1.JDK1.5的新特性:

泛型ArrayList list = new ArrayList();-->ArrayList list = new ArrayList();

自动装箱/拆箱

for - each

static import(静态导入) 以前是:Math.squrt() --》squrt();

边长参数: int sum(int ... int list)有任意个参数,把它看做数组,通过...来表示

枚举

元数据(Meradata)

2.JDK1.6的新特性:

增强的for循环

监视器和管理:JavaSE6中内存泄漏增强了分析以及诊断能力。。当遇到java.lang.OutOfMemory异常的时候,可以得到一个完整的堆栈信息,并且当堆已经满了的时候,会产生一个Log文件记录这个致命错误,另外JVM还添加了一个选择,允许你在堆满的时候运行脚本。

插入式注解处理:插入式直接处理API(JSR 269)提供了一套标准API来处理Annotations(释文)

安全性

Desktop类和SystemTray类

使用JAXB2来实现对象域XML之间的映射

StAX

使用Compiler API

轻量级HTTPServer API

用console来发控制台程序

3.JDK1.7的新特性:

模块化特性:Java7也是采用了模块的划分出来提速,一些不是必须的模块并没有下载和安装,当虚拟机需要的时候,再下载相应的模块,同时对启动速度也有了很大的改善。

多语言支持:Java7的虚拟机对多种动态程序语言增加了支持,比如:Rubby,Python等等

开发者的开发效率得到了改善:switch中可以使用字符串。在多线程并发与控制方面:轻量级的分离与合并框架,一个支持并发访问的HashMap等等。通过注解增强程序的静态检查。提供了一些新的API用于文件系统的访问,异步的输入输出操作,socket通道的配置与绑定,多点数据包的传递等等。

执行效率的提高:对象指针由64为压缩到与32位指针相匹配的技术使得内存和内存带块的消耗得到了很大的降低,因而提高了执行效率。提供了新的垃圾回收机制来降低垃圾回收的负载和增强垃圾回收的效果。

堆积和类的语言支持Connections.sort();

自动资源管理

改进的通用实例创建类型推断

数字字面量下划线支持

二进制字面量

简化可变参数方法调用。

4.JDK1.8

接口的默认方法default方法名

Lambda表达式

函数式接口

方法与构造函数引用

Lambda作用域

访问局部变量

访问对象字段与静态变量

访问接口的默认方法

5.JDK1.9

Jigsaw项目;模块化源码

简化进程API

轻量级JSON API

钱和货币API

改善锁争用机制

代码分段缓存

智能Java编译,第二阶段

HTTP2.0客户端

kulla计划:Java的REPL实现

二、继承出现的目的?

提高代码的复用性让类与类之间产生关系,给多态提供了前提

降低代码的冗余度

三、子类继承父类的哪些资源?

子类用用父类非private的属性和方法

子类可以拥有自己的属性和方法,即子类可以父类进行扩展

子类可以用自己的方式实现父类的方法

Java的继承时单继承,但是可以多实现,单继承就是一个子类只能继承一个父类

提高了代码的耦合度,同时缺点也就随之而来,耦合度越高,代码联系越紧密,代码的独立性就越差

四、抽象类的特点?

抽象方法和抽象类使用abstract修饰

只要有抽象方法的类,一定是抽象类

抽象类中不一定有抽象方法

没有抽象方法的抽象类有意义,防止外界创建对象,防止外界实例化的方式:a)构造私有化b)抽象类c)内部类d)接口

抽象类不能实例化,得使用多态或者继承

抽象类是服务类,成员变量一般使用public或者protected

五、接口出现的目的?特点?

1.目的:

接口的目的是为了实现类的功能高度集中而存在的。一般情况下,实现类必须要实现接口的全部方法,可是有些情况却显得多余,为了避免这样的现象,出现了抽象接口。

2.特点:

接口使用interface关键字修饰

接口是常量和抽象方法的集合,在JDK1.8以后还可以有静态方法和默认方法

接口中的创两默认省略public static final 方法默认省略public abstract

接口不能够实例化

想要“实例化”一个接口,必须使用多态【接口的实现】

六、实现多态的几种方式:

利用继承,让子类重写父类的方法

抽象类的抽象方法实现多态

接口实现多态

七、设计原则:

1.开闭原则:对扩展开放,对修改关闭

在原有项目中添加新的文件,实现新的功能,还不改动原有的代码

2.里氏替换原则:父类出现的地方,可以用子类替换,子类出现的地方可以用父类替换。

父类出现的地方可以用子类替换:使用架构或者模版

子类出现的地方可以用父类替换

里氏替换原则,是对开闭原则的补充(只要出现里氏替换原则必然会出现开闭原则)

3. 依赖倒转原则:

依赖于抽象而不依赖于实现

依赖于约束(形参和返回值)而不依赖于过程

依赖于标准而不依赖于实现细节

4. 接口隔离原则:==单一只能原则(一个接口只干一件事情)

作用:奖励依赖降低耦合

5. 迪米特法则:多用继承,少用组合

6. 合成复用原则:多用组合,少用继承

八、单例模式:

懒汉式:

饿汉式:

java知识串讲_java基础之Java知识串讲相关推荐

  1. java三大特性 继承_java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  2. java视频教程千峰_java基础教程-Java开发入门视频教程-千锋教育视频资源库

    第1节 - Java由来及语言特点 点击播放 第2节 - Java的执行机制及第一个应用程序 点击播放 第3节 - 类的阐述及Package相关 点击播放 第4节 - Java的编码规范 点击播放 第 ...

  3. java单引号转义_Java基础入门——Java语言基础(上)

    本篇我们开始进入Java的学习,首先在学习如何编写Java语言前要先了解Java程序的基本结构. 一.Java程序的基本结构 一个Java程序的基本结构大体可以分为包.类.main()主方法.标识符. ...

  4. java case switch面试_Java基础篇——Java中switch case语句用法及注意事项面试题9期

    本文主要说一说关于switch case语句用法及注意事项,应对面试官的提问.希望可以帮助那些对switch存在错误和各种细节问题的"码友". switch-case注意事项 sw ...

  5. 机械转行java自学经历,零基础学java,血泪总结的干货

    机械转行java自学经历,零基础学java,血泪总结的干货 1.我为什么转行 2.转行之路 3.面试之路 自学路上的网站 Java教程 实践项目一站式学习 bilibili 自学书籍 <Java ...

  6. Java好学吗?零基础入门Java,三个就业方向实现月入过万!

    Java好学吗?零基础入门Java容易吗?据统计,这是很多人学习前最常问也是最关心的问题之一. 不可否认,大家在开始接受新事物的时候都会陷入困境,但学习是循序渐进的,零基础入门Java到底难不难,只有 ...

  7. java package报错_Java基础知识总结 - 超详细篇(上)

    1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre. 2,JRE:Java Runtime Environment,java程序的运行环境,ja ...

  8. java的技术定义_java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...

  9. java 新手入门电子书_java基础知识(适合新手入门).pdf

    Java 基础知识 本文中主要分为三个部分,第一个部分介绍java 的基本概念,第二部分介绍了java 的 基础知识,第三部分讲解了java 的语法以及实现代码,适合java 初学者学习. 一 Jav ...

最新文章

  1. Kotlin威胁、Python逆袭,2018年程序员需要升级哪些技能?(附报告下载)
  2. 浅析网站首页设计需注意的要点
  3. linux kernel中__setup()函数介绍
  4. C 语言里的字符串---字符数组
  5. python cnn图像分类_关于CNN图像分类的一份综合设计指南
  6. 不宜过分炒作第三代半导体材料弯道超车
  7. 查看mysql是否归档的命令_查看oracle数据库是否为归档模式
  8. 截取台风后的图片_今年首个台风来袭!“大黄蜂”下,货代如何“防台”?
  9. go路由httprouter中的压缩字典树算法图解及c++实现
  10. python免费课程400节-少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
  11. jquery实现截取pc图片_html+jquery实现简单图片裁剪
  12. 代码管理学:如何给新员工安排工作
  13. 前端特效 - 前置- - 01. 百叶窗
  14. c语言许多名字随机抽取名字,怎么用ppt实现一个随机抽取名字的功能
  15. 每周分享第 18 期
  16. Android知识体系导图
  17. 读《灵魂只能独行》乱摘
  18. Docker私有仓库搭建笔记(四)
  19. 能否构成三角形的条件代码_平面几何之三角形篇
  20. Gitlab和Crowd共享账户集成登入

热门文章

  1. Android8.1 源码修改之插入SIM卡默认启用Volte功能
  2. 隐形的翅膀怎么用计算机弹出来,《隐形的翅膀》原版吉他谱分享,用音阶指法弹简谱其实很简单 … …-520吉他网...
  3. 解决IDEA.java文件显示不正常,左下角显示J问题(项目路径导入错误!)
  4. 谈谈google news
  5. 23年浙江双非计算机第四保研浙大四个月心路历程|保研经验|递补上岸浙软
  6. 2022中国新能源汽车客户体验价值排名:理想、小鹏、几何、极氪位居前列 | 美通社头条...
  7. 基于PHP使用rabbitmq实现消息队列
  8. HTML+CSS从入门到入土
  9. 算法刷题记录(Day 33)
  10. AI 建模师 素养手冊(2)