【Java笔记__高级特性__实用类(1)】教程文章相关的互联网学习教程文章

Java中面向对象三大特性之——多态【代码】

多态的概述: 多态是继封装、继承之后,面向对象的第三大特性。 生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态。 多态的条件 1.继承 2.方法的重写 (为了让多态有意义) 3.父类的引用指向子类的对象 多态的体现 父类类型 变量名 = new 子类对象; 变量名.方法名...

Java学习之路——Java8 新特性【代码】

Java学习之路——Java8 新特性 概述 虽说 JDK 每个新版本相较于上一个版本都有一些新特性,但是因为 JDK8 是行业中使用最为广泛的版本,因此它的新特性是我们需要了解并使用的。这些新特性能够帮助我们更好的进行编程。 一、Lambda 表达式 Lambda 表达式,也可称为闭包,它允许把函数作为一个方法的参数(函数作为参数传递进方法中),能够使代码变的更加简洁紧凑。 语法 (parameters) -> expression // 或 (parameters) ->{ state...

java三大特性:封装、继承、多态

至今记得若干年前,去面试排了半天的队,到我的时候,面试官问我的第一个问题,java三大特性是什么~我支支吾吾的没有答全~0.0什么是封装?举个例子:有一个房子,房子里面有厨房,卫生间,卧室,客厅等房间,每一个房间都有各自的用途,而客人要来我家吃饭也好,闲聊也好,那么他只能从我家的门(对外暴露的接口)进来,那这个房子就代表一个“封装”。封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或...

Java8新特性6 时间【代码】

package time;import org.junit.Test;import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjuster; import java.util.concurrent.TimeUnit;/*** @author: zdc* @date: 2020-03-24*/ public class _1Test {@Testpublic void test1() {//获取当前日期LocalDate date = LocalDate.now();System.out.println(date);//构造器指定日期LocalDate date1 = LocalDate.of(2008, 1, 1);Syst...

Java8-13新特性中的Lambda表达式为什么运行效率低【代码】

前言 我为什么说Lambda表达式运行效率低。 先准备一个list: List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10000; i++) {list.add(i); }先用Lambda表达式的方式来循环一下这个list: long lambdaStart = System.currentTimeMillis(); list.forEach(i -> {// 不用做事情,循环就够了 }); long lambdaEnd = System.currentTimeMillis(); System.out.println("lambda循环运行毫秒数===" + (lambdaEnd - lambdaStart)...

Java8 新特性

接口的默认方法 interface Formula{double calculate(int a);default double sqrt(int a) {return Math.sqrt(a);}} Lambda表达式 以前排列字符串 List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");Collections.sort(names, new Comparator<String>() {@Overridepublic int compare(String a, String b) {return b.compareTo(a);} }); Java 8中 Collections.sort(names, (String a, String b) -> {return b.c...

学习Java,你需要知道这些——三大特性之继承【代码】【图】

前面说过了封装,我再说一下我对继承的理解。 继承,听这名字肯定就有一些想法,继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。 这样可以使代码的复用变的十分简单,我可以定义一个子类,拥有父类的所有属性和方法。同时,子类也可以重新定义方法,追加属性和方法,可以很大程度的减少工作量。 以一下代码为例: 现在有一个父类Animal: public class Animal {public void getColor() {System.out.println...

java8新特性【图】

java8新特性 stream什么是Stream 流到底是什么: 是数据渠道,用于操作数据源(集合、数组等)所生成 的元素序列。 “集合讲的是数据,流讲的是计算” 注意: Stream自己不会存储元素。Stream不会自己改变源对象。相反,他们会返回一个持有结果的新Stream;Stream操作是延迟执行的。这意味着他们会等到需要结果的时候才执行 ; Stream操作三步骤 创建Stream: 一个数据源(如:集合、数组),获取一个流**中间操作:**一个中间操作...

Java8的新特性【图】

怒学Java8系列一:Lambda表达式 http://www.cnblogs.com/WJ5888/p/4618465.html

关于Java你不知道的之Java8新特性:HashMap优化【图】

其他主要新特性Lambda表达式和函数式接口 方法引用与构造器引用 Stream API 接口中默认方法与静态方法 新时间日期API 最大化减少空指针异常(Optional) 。。。。HashMap优化 HashMap1.7 在JDK1.7 到 JDK1.8的时候,对HashMap做了优化 首先JDK1.7的HashMap当出现Hash碰撞的时候,最后插入的元素会放在前面,这个称为 “头插法”JDK7用头插是考虑到了一个所谓的热点数据的点(新插入的数据可能会更早用到),但这其实是个伪命题,因为J...

Java【继承,super关键子,方法重写Override】三大特性之继承(保姆级别教学)【代码】【图】

?面向对象三大特征:封装,继承和多态。继承是多态的前提,没有继承,就没有多态。本文主要讲解继承。 多态链接: 封装链接: https://editor.csdn.net/md/?articleId=113817402. 方法重载链接: https://blog.csdn.net/qq_43436117/article/details/113815343. 1.继承 1.1 概述 由来: ?多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。如图所示: 其中,...

Java8新特性之Stream--collect方法【代码】

collect方法 收集(collect) collect,收集,可以说是内容最繁多、功能最丰富的部分了。从字面上去理解,就是把一个流收集起来,最终可以是收集成一个值也可以收集成一个新的集合。 collect主要依赖java.util.stream.Collectors类内置的静态方法。 归集(toList/toSet/toMap) 因为流不存储数据,那么在流中的数据完成处理后,需要将流中的数据重新归集到新的集合里。 toList、toSet和toMap比较常用,另外还有toCollection、toConcurr...

Java—新特性(接口定义加强)【代码】

接口定义加强 在JDK1.8以前接口的特性有:抽象方法public abstract (只能是public abstract,其他修饰符都会报错);全局常量 public static final(只能是public 其他修饰符会编译报错);接口不能直接实例化对象,实现接口必须在子类中覆写接口中定义的方法。而现在提供了两类新的方法: a.使用default来定义普通方法,需要通过对象调用 b.使用static定义的静态方法,通过接口名直接调用 接口: (1)定义常量 (2)定义抽象方法 ...

java8新特性之 日期和时间【代码】

在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需要java.text.DateFormat类处理。同时java.util.Date中既包含了日期,又包含了时间,所以java8新的日期和时间库,很好的解决了以前日期和时间类的很多弊端。并且也借鉴了第三方日期库joda很多的优点。java.time包下主要包含下面几个主要的类:Instant:时间戳 Duration:持续时间,时间差 LocalDate:...

基于JAVA继承和多态特性的初步案例书写【代码】

将抽象类作为父类,子类实现了父类中的抽象方法 public class practice_7 {public static void main(String[] args) {Leader leader=new Leader("zhangsan",20);Solider road=new Road("sss", 55);Solider sea=new Sea("tinghua", 30);road.pushorder(road,sea);road.getflag();} } abstract class Solider{private String name;private int num;public Solider(String name,int num){this.name=name;this.num=num;}public void pr...