Java
adu_200000
这个作者很懒,什么都没留下…
展开
-
Kafka架构原理
对于kafka的架构原理我们先提出几个问题?1.Kafka的topic和分区内部是如何存储的,有什么特点?2.与传统的消息系统相比,Kafka的消费模型有什么优点?3.Kafka如何实现分布式的数据存储与数据读取?一、Kafka架构图1.kafka名词解释在一套kafka架构中有多个Producer,多个Broker,多个Consumer,每个Producer可以对应多...转载 2019-12-27 15:40:16 · 290 阅读 · 0 评论 -
java 泛型详解
目录1. 概述2. 一个栗子3. 特性4. 泛型的使用4.1 泛型类4.2 泛型接口4.3 泛型通配符4.4泛型方法4.4.1 泛型方法的基本用法4.4.2 类中的泛型方法4.4.3 泛型方法与可变参数4.4.4 静态方法与泛型4.4.5 泛型方法总结4.5 泛型上下边界4.6 关于泛型数组要提一下5. 最后对java的泛型特性...转载 2019-05-28 15:29:38 · 122 阅读 · 0 评论 -
Java对象的序列化(Serialization)和反序列化详解
目录1.序列化和反序列化2.Java对象的序列化和反序列化3.序列化及反序列化相关接口及类4.Serialization接口详解5.Java还提供了另一个序列化接口java.io.Externalizable6.静态变量的序列化7.Transient 关键字使用1.序列化和反序列化 序列化(Serialization)是将对象的状...转载 2019-05-29 18:31:30 · 363 阅读 · 0 评论 -
Externalizable的用法及与Serializable的异同
Externalizable接口 Externalizable接口扩展自java.io.Serializable接口。实现java.io.Serializable即可获得对类的对象的序列化功能。而Externalizable可以通过writeExternal()和readExternal()方法可以指定序列化哪些属性。Externalizable用法 创建一个E...转载 2019-05-29 18:54:15 · 2941 阅读 · 1 评论 -
深入理解JAVA序列化
目录引言序列化 ID 问题静态变量序列化父类的序列化与 Transient 关键字对敏感字段加密序列化存储规则小结 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题、静态变量问题、transient 关键字的影响...转载 2019-05-29 18:59:36 · 162 阅读 · 0 评论 -
Java中内部类的定义和使用
目录为什么要用到内部类内部类的分类和使用匿名类与内部的联系与区别内部类总结为什么要用到内部类 在java开发学习中我们经常会碰到内部类。内部类又有很多的优势:首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法名称参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的...转载 2019-06-20 16:04:04 · 268 阅读 · 0 评论 -
JDK8 新特性之 Stream
目录Stream API聚集操作如何使用StreamStream的创建Stream 常用方法Stream API的性能Stream API Java8新增的stream功能非常强大,这里的stream和Java IO中的stream是完全不同概念的两个东西。本文要讲解的stream是能够对集合对象进行各种串行或并发聚集操作,Stream API依赖于前...转载 2019-06-26 19:49:24 · 295 阅读 · 0 评论 -
Java泛型之 ? extends T和 ? super T 的区别
目录extends和super的介绍extends规则super规则extends和super的介绍 关于Java泛型,这里我不想总结它是什么,这个百度一下一大堆解释,各种java的书籍中也有明确的定义,只要稍微看一下就能很快清楚.从泛型的英文名字Generic type也能看出,Generic普通、一般、通用的,是一个概括性的词,那么泛型从名字上也就好理解了,它是...转载 2019-06-26 20:31:54 · 149 阅读 · 0 评论 -
Java中的默认方法介绍
目录一个简单的例子为什么要有默认方法默认方法的继承默认方法的多继承接口继承行为发生冲突时的解决规则接口与抽象类接口静态方法其他注意点 Java 8 引入了新的语言特性——默认方法(Default Methods)。Default methods enable new functionality to be added to the interf...转载 2019-06-27 14:08:09 · 954 阅读 · 1 评论 -
Java中aop相关概念介绍
目录为什么要用aopaop术语介绍具体实践为什么要用aop1)就是为了方便,看一个国外很有名的大师说,编程的人都是“懒人”,因为他把自己做的事情都让程序去做了。用了AOP能让你少写很多代码,这点就够充分了吧。2)就是为了更清晰的逻辑,可以让你的业务逻辑去关注自己本身的业务,而不去想一些其他的事情。这些其他的事情包括:安全,事物,日志等等。aop术语介绍通知、...转载 2019-06-24 16:51:09 · 2386 阅读 · 0 评论 -
Java 中 Comparable 和 Comparator 比较
Comparable 简介Comparable 是排序接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。此外,“实现Compar...转载 2019-06-27 16:31:58 · 180 阅读 · 0 评论 -
Java stream流处理API使用案例
目录从iteration到Stream操作Stream创建filter.map和flatMap方法提取子Stream和合并Stream状态变换Optional结果的处理Collecting into Maps分组并行Stream Stream是Java8中,操作集合的一个重要特性。从iteration到Stream操作 当...转载 2019-06-28 15:13:59 · 219 阅读 · 0 评论 -
Java8的方法引用
目录一、概述二、什么是方法引用三、方法引用例子四、四种方法引用类型1、静态方法引用2、特定实例对象的方法引用3、任意对象(属于同一个类)的实例方法引用4、构造方法引用一、概述在学习lambda表达式之后,我们通常使用lambda表达式来创建匿名方法。然而,有时候我们仅仅是调用了一个已存在的方法。如下:Arrays.sort(stringsArray,(...转载 2019-06-28 19:06:46 · 330 阅读 · 0 评论 -
JDK8 日期时间的优化LocalDateTime&LocalDate和LocalTime
目录一、简介二、日期初识三、时间初识四、比较与计算五、时区六、格式化七、相关类说明一、简介 在Java8之前,日期时间API一直被开发者诟病,包括:java.util.Date是可变类型,SimpleDateFormat非线程安全等问题。故此,Java8引入了一套全新的日期时间处理API,新的API基于ISO标准日历系统。 二、日期初识...转载 2019-07-04 14:10:55 · 1820 阅读 · 0 评论 -
Lists.transform的使用案例
目录案例new FunctionLists.transform(myInfoList, new Function),string>案例 使用Lists.transform可以轻松完成从一种类型的list到另一种类型list的转换。代码:Set<String> result = Sets.newHashSet();result.addAl...转载 2019-08-01 18:14:35 · 1849 阅读 · 0 评论 -
JAVA抽象类和抽象方法(abstract)
一、抽象(abstract)的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。 我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。 例如,定义了“动物”父...转载 2019-08-19 15:05:54 · 292 阅读 · 0 评论 -
编程范式:命令式编程(Imperative)、声明式编程(Declarative)和函数式编程(Functional)
目录命令式编程声明式编程函数式编程参考地址主要的编程范式有三种:命令式编程,声明式编程和函数式编程。命令式编程命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。比如:如果你想在一个数字集合 collection(变量名) 中筛选大于 5 的数字,你需要这样告诉计算机:第一步,创建一个存储结果的集合变量 results; 第...转载 2019-09-03 18:07:29 · 465 阅读 · 0 评论 -
Java BitSet使用场景和示例
目录一、什么是BitSet?二、Java BitSet实现原理三、使用场景一、什么是BitSet? 注:以下内容来自JDK API: BitSet类实现了一个按需增长的位向量。位Set的每一个组件都有一个boolean值。用非负的整数将BitSet的位编入索引。可以对每个编入索引的位进行测试、设置或者清除。通过逻辑与、逻辑或和逻辑异或操作,可以使用一个 BitSe...转载 2019-05-28 10:11:58 · 176 阅读 · 0 评论 -
Java Executor并发框架(三)ThreadPoolExecutor 队列缓存策略
目录线程初始化任务堵塞队列任务拒绝策略线程池的关闭线程池容量的动态调整 前面两篇讲解了线程池中线程创建后的运行情况,其中有一系列的策略来保证线程正常运行。但是我们知道线程池是可以设置容量的,而且这容量的设置也是至关重要的,如果容量设置的太小,那么将会影响系统的运行效率,如果设置的过大,也可能造成无止尽的线程堆积,最终造成系统内存溢出。对于此,线...转载 2019-05-16 19:38:06 · 685 阅读 · 0 评论 -
Java 继承介绍
目录继承构造器protected关键字向上转型谨慎继承继承 在讲解之前我们先看一个例子,该例子是前篇博文(java提高篇-----理解java的三大特性之封装)的。 从这里我们可以看出,Wife、Husband两个类除了各自的husband、wife外其余部分全部相同,作为一个想最大限度实现复用代码的我们是不能够忍受这样的重复代码,如果...转载 2019-05-21 17:33:54 · 195 阅读 · 0 评论 -
spring常用注解汇总
传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率...转载 2019-02-25 16:36:18 · 194 阅读 · 0 评论 -
Java 中Serializable的使用
目录Serializable序列化的简要说明持久化的简单介绍两种主要特性的支持Serializable的一些说明序列化的步骤反序列化的步骤Serializable序列化的代码实例Externalizable序列化的代码实例Serializable序列化的简要说明 持久化的简单介绍 “持久化”意味着对象的“生存时间”并不取决于程序是否正在执行——它存...转载 2019-02-21 10:46:41 · 197 阅读 · 0 评论 -
浅谈Java中的equals和==
在初学Java时,可能会经常碰到下面的代码:String str1 = new String("hello");String str2 = new String("hello"); System.out.println(str1==str2);System.out.println(str1.equals(str2)); 为什么第4行和第5行的输出结果不一样?==和...转载 2019-03-11 16:54:02 · 129 阅读 · 0 评论 -
String中compareTo的用法
目录功能描述案例功能描述java.lang.String.compareTo() 方法比较两个字符串的字典,比较是基于字符串中的每个字符的ascii码。当进行比较(比如有String A 和 String B)的时候,有2中情况需要讨论:1)一个为另一个的子字符串,那这种情况对比结果为他们的长度差2)两个对比字符串的内容不相同且不是父子关系的字符串,那以它们两个第一个不...原创 2019-04-11 12:22:00 · 546 阅读 · 0 评论 -
Java中比较运算符compareTo()、equals()与==的区别及应用总结
目录前言== 和 equals的区别compareTo前言 比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。Java 中常用的比较运算符如下表所示: 本文主要给大家介绍了关于Java比较运算符compareTo()、equals()与==区别及应用的相关内容,下面话不多说了...原创 2019-04-11 12:27:27 · 491 阅读 · 2 评论 -
hashmap的排序
目录根据key排序根据value排序原始的hashmap如下所示: Map<String,Integer> map = new HashMap<>(); map.put("key1",1); map.put("key3",2); map.put("key2",3);根据key排序1.将...原创 2019-04-03 17:06:05 · 317 阅读 · 0 评论 -
Collections的常规操作
目录代码初始化排序操作查找,替换操作代码初始化 //init int list List<Integer> intList = new ArrayList<>(); intList.add(9); intList.add(1); intList.add(5); ...原创 2019-04-09 17:57:29 · 866 阅读 · 0 评论 -
Java注解@Bean说明
目录定义beanbean的依赖接受生命周期的回调指定bean的scope使用@Scope注解@Scope and scoped-proxy自定义bean的命名bean的别名bean的描述@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名定义bean下...转载 2019-04-26 15:23:19 · 13698 阅读 · 4 评论 -
maven profile动态选择配置文件
目录一、背景二、profile简介三、配置动态打包一、背景 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境、测试环境、生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,很容易出错,而且浪费劳动力。 maven提...转载 2019-04-23 14:59:42 · 132 阅读 · 0 评论 -
Dubbo的配置及使用
目录Dubbo是什么Dubbo能做什么dubbo的架构dubbo使用方法Dubbo是什么 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的...转载 2019-04-19 16:12:27 · 133 阅读 · 0 评论 -
Java中实现深浅拷贝
Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b; 在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用现有对象的部分或全部 数据。 Ja...转载 2019-05-09 14:06:39 · 470 阅读 · 0 评论 -
Java Executor并发框架(一)整体介绍
目录一、概述二、Executors工厂类三:ThreadPoolExecutor详解一、概述 Java是天生就支持并发的语言,支持并发意味着多线程,线程的频繁创建在高并发及大数据量是非常消耗资源的,因为java提供了线程池。在jdk1.5以前的版本中,线程池的使用是及其简陋的,但是在JDK1.5后,有了很大的改善。JDK1.5之后加入了java.util...转载 2019-05-14 18:13:02 · 302 阅读 · 0 评论 -
Java Executor并发框架(二)剖析ThreadPoolExecutor运行过程
上一篇从整体上介绍了Executor接口,从上一篇我们知道了Executor框架的最顶层实现是ThreadPoolExecutor类,Executors工 厂类中提供的newScheduledThreadPool、newFixedThreadPool、newCachedThreadPool方法其实也只是ThreadPoolExecutor的构造函数参数不同而已。通过传入不同的参数,就...转载 2019-05-14 18:50:29 · 98 阅读 · 0 评论 -
java中list set 和 array的相互转化
目录Array转List和SetList转Array和SetSET转Array和ListArray转List和SetString[] str = new String[]{"AA", "BB", "CC"};List list = Arrays.asList(str);注:Arrays.asList()方法返回的List不能add、remove对象,因为该方...原创 2019-05-07 15:49:00 · 287 阅读 · 0 评论 -
JDK8 新特性之 Lambda表达式
目录匿名内部类lambda表达式函数式接口总结 本文主要讲解Java的匿名内部类、lambda表达式以及函数式接口。匿名内部类 匿名内部类适用于那些只需要使用一次的类,比如设计模式下的命令模式,往往通过定义一系列接口进行调用,有时有的命令只会执行一次就不再执行,这个时候如果单独定义一个类就显得过于复杂并且编译会生成这个类的....转载 2019-05-10 14:59:14 · 218 阅读 · 0 评论 -
Java多态的介绍
目录多态的基本介绍多态的实现2.1实现条件2.2实现形式经典实例 面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同...转载 2019-05-20 18:41:05 · 69292 阅读 · 20 评论 -
Spring IOC的理解
目录一、分享Iteye的开涛对Ioc的精彩讲解1.1、IoC是什么1.2、IoC能做什么1.3、IoC和DI二、分享Bromon的blog上对IoC与DI浅显易懂的讲解2.1、IoC(控制反转)2.2、DI(依赖注入)三、我对IoC(控制反转)和DI(依赖注入)的理解 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依...转载 2019-02-22 16:17:16 · 684 阅读 · 0 评论