java 类与接口
茅坤宝骏氹
语言:Java、C/C++、C#、Python、Linux Shell。
框架:Spring、Spring MVC、Spring Boot、Spring Cloud、Hibernate、Mybatis、Freemarker、Velocity。
前端:HTML5、CSS3、JavaScript、Bootstrap、JQuery、Vue、React。
数据库:oracle、mysql、MongoDB、HBase。
缓存:Memcache、Redis。
消息队列:kafka。
大数据:Hadoop、Hive、Sqoop、Flume、Spark、Strom、OpenTSDB、Druid。
展开
-
Java对象的引用类型
转载自 Java对象的引用类型Java对象的引用类型有强引用,软引用,弱引用,虚引用和FinalReference,提供这几种引用类型的主要目的:1.程序员可以通过不同的引用方式决定某些对象的生命周期;2.利用JVM的垃圾回收机制,对象可达性分析,进行不同策略的垃圾回收;3.合理的利用软,弱,虚引用可以避免内存溢出等风险。 下面来详细谈谈这几种类型引用,首先需要了解一下对象...转载 2019-02-11 19:29:18 · 561 阅读 · 0 评论 -
Java中枚举的线程安全性及序列化问题
转载自 Java中枚举的线程安全性及序列化问题Java SE5提供了一种新的类型-Java的枚举类型,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能。本文将深入分析枚举的源码,看一看枚举是怎么实现的,他是如何保证线程安全的,以及为什么用枚举实现的单例是最好的方式。 枚举是如何保证线程安全的要想看源...转载 2018-10-19 12:38:16 · 249 阅读 · 0 评论 -
Java(enum)枚举用法详解
转载自 Java(enum)枚举用法详解本篇文章主要介绍了Java 枚举用法详解,枚举的好处:可以将常量组织起来,统一进行管理。有兴趣的可以一起来了解一下。概念enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性。在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下:enum Color { RED, GREEN, BLUE }如果枚举不添加任何方法,枚举值...转载 2018-06-04 09:05:11 · 5037 阅读 · 0 评论 -
在Java中如何高效的判断数组中是否包含某个元素
转载自 在Java中如何高效的判断数组中是否包含某个元素如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作。同时,这个问题在Stack Overflow中也是一个非常热门的问题。在投票比较高的几个答案中给出了几种不同的方法,但是他们的时间复杂度也是各不相同的。本文将分析几种常见用法及其时间成本。检查数组是否包含某个值的方法使用Listpublic sta...转载 2018-05-19 08:46:51 · 187 阅读 · 0 评论 -
深入分析Java中的length和length()
转载自 深入分析Java中的length和length()在开始正文之前,请你快速回答如下问题:在不使用任何带有自动补全功能IDE的情况下,如何获取一个数组的长度?以及,如何获取一个字符串的长度?这个问题我问过不同水平的程序员,包括初级和中级水平的。他们都不能准确而自信地回答这个问题(如果你能很准确很自信的回答这个问题,那么证明针对这一知识点你比大多数中级程序员掌握的好)。由于现在很多IDE都有代...转载 2018-05-19 08:45:42 · 16046 阅读 · 3 评论 -
java之数组
一、声明数组数组是引用类型,声明数组并没有分配空间,则该数组变量的值为null。类型[] 数组名;如:double[] data;二、创建数组类型[] 数组名=new 类型[长度];数组创建,数组里面的元素会被赋值,数值型基本数据类型的默认赋值为0,char类型的默认值为'\u000',boolean型的默认值为false。三、初始化数组原创 2017-11-26 17:53:16 · 214 阅读 · 0 评论 -
Java进阶之对象克隆(复制)
转载自 Java进阶之对象克隆(复制)假如说你想复制一个简单变量。很简单:int apples = 5; int pears = apples;不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。但是如果你复制的是一个对象,情况就有些复杂了。假设说我是一个beginner,我...转载 2018-09-23 11:18:59 · 2141 阅读 · 0 评论 -
Java8学习笔记(1) -- 从函数式接口说起
转载自 Java8学习笔记(1) -- 从函数式接口说起希望本文能够成为Java8 Lambda表达式的快速入门指南。函数式接口理解Functional Interface(函数式接口,以下简称FI)是学习Java8 Lambda表达式的关键所在,所以放在最开始讨论。FI的定义其实很简单:任何接口,如果只包含唯一一个抽象方法,那么它就是一个FI。为了让编译器帮助我们确保一个接口满足FI的要求(...转载 2018-06-22 18:42:19 · 243 阅读 · 0 评论 -
java8的函数指针
转载自 java8的函数指针这段时间 项目实在是太紧了,没有时间写博客啊。java模式的文章还没有写完,后期在写吧。最近项目中大量的使用到了远程调用以及回调。是采用反射的方式实现的。担心到大量的反射会影响到程序运行的效率问题。所以决定放弃使用反射,采用java8中的函数指针来实现。经测试效率确实会快很多。这里写一个小小的函数指针的例子,从这一个小例子中大家可以感觉一下函数指针的强大。下面直接看例...转载 2018-06-22 18:42:31 · 1569 阅读 · 3 评论 -
Java中的函数传递
转载自 Java中的函数传递在C和C++中,函数的传递可以通过函数指针来实现。在C#中,函数传递可以通过委托、Action、Func来实现。Java中没有函数指针、没有委托,那函数要如何传递呢?可以通过以下两种方式实现。1、通过handler,在A类中实例化B类,并传递一个handler到B中。B通过handler发送消息,A中接收到消息后,执行相应的函数。严格的来说,这种不算是函数传递,只是变...转载 2018-06-17 08:46:23 · 1342 阅读 · 0 评论 -
java之类
一、构造方法 1)构造方法具有与类的相同名字 2)构造方法没有返回值,甚至连void都没有 3)创建新对象使用new,构造方法的作用就是初始化对象。 格式为 [可见修饰符] 类名(参数表){ } 例如: public Myclass(){ } 普通方法: pu原创 2017-11-26 17:53:21 · 222 阅读 · 0 评论 -
深入理解Java的接口和抽象类
转载自 深入理解Java的接口和抽象类对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:一.抽象类二.接口三.抽象类和接口的区别若有不正之处,请多多谅解并欢迎批评...转载 2018-05-06 14:36:36 · 157 阅读 · 0 评论 -
Java抽象类与接口的区别
转载自 Java抽象类与接口的区别抽象类抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以JDK中的GenericServlet为例:public abstract class GenericServlet implements Servlet, ServletConfig, Serializable { // abstra...转载 2018-05-06 14:36:39 · 141 阅读 · 0 评论 -
Java 8新特性——default方法(defender方法)介绍
转载自 Java 8新特性——default方法(defender方法)介绍 我们都知道在Java语言的接口中只能定义方法名,而不能包含方法的具体实现代码。接口中定义的方法必须在接口的非抽象子类中实现。下面就是关于接口的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 ...转载 2018-05-06 14:36:44 · 432 阅读 · 0 评论 -
java提高篇之详解内部类
转载自 java提高篇之详解内部类内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。第一次见面内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。123456789101112131415161718192021222324252627publicclass OuterClass { privateString...转载 2018-05-06 14:36:59 · 166 阅读 · 0 评论 -
避免代码冗余,使用接口和泛型重构Java代码
转载自 避免代码冗余,使用接口和泛型重构Java代码在使用动态语言和.NET工作了若干年后,我又回到老本行–Java开发。在Ruby中,清除代码冗余是非常方便的,而在Java中则需要结合接口和泛型实现类似的功能。原始代码以下是这个类中的一些方法用于后续的阐述。为了使例子更简洁,我移除了些代码。12345678910111213141516171819202122232425262728293031...转载 2018-05-07 11:06:36 · 298 阅读 · 0 评论 -
Java 8新特性探究(二)深入解析默认方法
转载自 Java 8新特性探究(二)深入解析默认方法 什么是默认方法,为什么要有默认方法简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法。只需在方法名前面加个default关键字即可。为什么要有这个特性?首先,之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全部实现该接口的类,目前的java 8之前的集合框架没有foreach...转载 2018-05-07 11:06:54 · 201 阅读 · 0 评论 -
java嵌套类与内部类
一、嵌套类(Nested Classes)使用嵌套类减少了命名冲突,一个内部类可以定义在一个类中,一个方法中甚至一个表达式中。(1)定义A nested(嵌套) class is any class whose declaration occurs within the body of another class or interface. A top level class is a c原创 2017-11-26 17:55:37 · 341 阅读 · 0 评论 -
Java 父类子类的对象初始化过程
转载自 Java 父类子类的对象初始化过程摘要: Java基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况。1. 基本初始化过程:对于一个简单类的初始化过程是: static 修饰的模块(static变量和static 块) ---> 按照代码顺序依次执行。 | 实例变量 及非static模块---> 按照代码顺序依次执行...转载 2018-06-17 08:46:12 · 2969 阅读 · 0 评论 -
java提高篇之抽象类与接口
转载自 java提高篇之抽象类与接口接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。一、抽象类我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的...转载 2018-05-06 14:36:28 · 159 阅读 · 0 评论