![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java编程
鲜卑大帝
在互联网大潮中挣扎的miller.fan。
展开
-
java异常处理---异常传递、封装
Java异常处理异常需要封装,但是仅仅封装还是不够的,还需要传递异常。一个系统的友好型的标识,友好的界面功能是一方面,另一方面就是系统出现非预期的情况的处理方式了。为什么不能在持久层直接把异常抛弃掉?比如我们的JEE项目一般都又三层:持久层、逻辑层、展现层,持久层负责与数据库交互,逻辑层负责业务逻辑的实现,展现层负责UI数据的处理。 又这样一个模块:用户第一次访问的时候,需要...原创 2020-04-05 17:36:19 · 771 阅读 · 0 评论 -
用CyclicBarrier聊聊赵匡胤建立北宋,一统天下的过程
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。1、用枚举表示前政权和地方割据政权import lombok.Getter;pub...原创 2019-11-14 14:16:54 · 237 阅读 · 1 评论 -
自旋锁的实现
1、请自己写一个自旋锁。OK,不仅写好了;而且验证一遍。/** * @program: mybatis * @description: 自己实现一个自旋锁 * @author: Miller.FAN * @create: 2019-11-13 14:19 **/public class MyLock { private AtomicReference atomicR...原创 2019-11-13 14:39:27 · 391 阅读 · 3 评论 -
用双端检锁机制不能保证线程安全的原因是什么?
用双端检锁机制不能保证线程安全,原因是存在指令重排。/** * @program: mybatis * @description: * @author: Miller.FAN * @create: 2019-11-11 17:49 **/public class SingletonDome { private static SingletonDome instance...原创 2019-11-11 18:16:09 · 947 阅读 · 0 评论 -
美团面试官很随意的三道题,就知道你java集合框架的相关内容是背诵了面试题还是有丰富的实际使用经验
1、面试官:能画一下ArrayList的Dragrams吗?我:画不出来,但知道底层原理。2、ArrayList有哪些函数接口,能写一下吗?3、现在有一个list,如何删除指定的几个元素,能手写一段代码吗?我:慌乱应付中,手写代码呀,没有IDEA根本想不起来呀。简直就是耻辱,一个学而不专的耻辱。下面开始恶补吧。Iterable接口:遍历器接口,实...原创 2019-11-09 01:17:57 · 308 阅读 · 1 评论 -
用代码生成PDF文档的方法
一、前言 前几天,做ASN条码收货模块,需要实现打印下载收货报表,经一番查找,选定iText--用于生成PDF文档的一个Java类库。废话不多说,进入正题。 二、iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。...转载 2018-11-20 10:16:48 · 2403 阅读 · 0 评论 -
Collector接口解析
public interface Collector<T, A, R> { Supplier<A> supplier(); BiConsumer<A, T> accumulator(); BinaryOperator<A> combiner(); Function<A, R> finisher...原创 2019-02-21 22:57:24 · 709 阅读 · 0 评论 -
流的使用
Stream API是java8的新特性;功能或作用:简洁地表达复杂的数据处理查询;此外,流可以透明地并行化。package lambdasinaction.chap5;import lambdasinaction.chap5.*;import java.util.*;import java.util.stream.Collectors;import static java...原创 2019-02-16 21:26:18 · 173 阅读 · 0 评论 -
如何将String类的日期转换成Java的LocalDateTime
今天收到一个修改任务,要求按照日、周、月等不同时间维度返回数据库内的聚合数据。前端请求只是一个命令的作用,并不能提供什么条件,于是我设计了一个接口。可以根据一个period参数返回不同时间维度下的统计结果:首先设计一个工具类:package com.potevio.networkmonitoringdatabasecreatetable.tool;import java.t...原创 2019-05-30 21:50:32 · 8466 阅读 · 0 评论 -
java实现折半插入排序
java版折半插入排序代码: //折半插入排序算法 int []arr6 = {23,12,48,56,45}; int i,j,low,high,mid; //ArrayList<Integer> arrayList = new ArrayList<>(); int tmp ; ...原创 2019-06-26 18:26:24 · 231 阅读 · 0 评论 -
java语言实现迷宫路径搜索的算法
问题:求解迷宫问题:求入口到出口的路径,通常用的是“穷举求解”的方法。即从入口出发,顺着某一方向走,若能走通,则继续往前走,如果走不通,原路退回,换一个方向继续探索,直到所有的通路都探索完毕为止。第一步:将迷宫本身抽象成一个二维数组; int[][] maze = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},...原创 2019-07-06 10:31:46 · 778 阅读 · 1 评论 -
微服务调用不要轻易用PUT方法
微服务远程调用失败原因分析:现象如下:关键 I/O error on PUT request for。微服务之间通过RestTemplate来调用:微服务A负责与第三方数据库的通信,负责分页返回新增的数据。 微服务C是一个定时同步任务,将A请求得到的结果处理后发送给微服务B,微服务B将结果写到自己的数据库。由于我在设计接口时,在微服务B中写数据库时采用了PUT方法,...原创 2019-09-20 17:10:29 · 818 阅读 · 0 评论 -
TreeMap研究,如何给TreeMap传入比较器?
最近心血来潮,决定好好研究一下java的集合框架:于是有了如下代码,看起来有点乱,但是写的过程中还摸清楚了很多问题。1、 TreeMap的底层实现原理,基于红黑树的,有序。2、默认采用升序,根据entry(key,value)中的key来确定先后顺序,假如你传入的key是int类型的,那么key越大,对应的entry越靠后。3、存放进TreeMap的每一个元素是entry,要求ke...原创 2019-09-26 22:29:55 · 592 阅读 · 3 评论 -
spring data JPA ---如何限制表中字段的属性
1、设置某个字段的默认值的方法: @Column(insertable = false,columnDefinition = "int default 1") private Integer sex;2、设置某个字段的不空属性 @Column(nullable = false)3、设置某个字段的其他属性@Column(name = "自定义字段名",l...原创 2018-10-10 13:49:29 · 4374 阅读 · 0 评论 -
泛型程序设计知识点积累
1、PECS原则的使用举个例子:下面的代码是Collections类中的copy函数(一个现成的API) /** * Copies all of the elements from one list into another. After the * operation, the index of each copied element in the d...原创 2018-10-19 11:18:35 · 140 阅读 · 0 评论 -
java如何应对不良的数据和带有问题的代码?
用户无法忍受由于异常造成数据丢失!!!确保用户数据不丢失,至少要做到以下三点:向用户通知错误;保存所有的工作结果;允许用户以妥善的形式退出程序。java使用一种称为异常处理机制的错误捕获机制处理。为了能在程序中处理错误,必须研究程序中可能出现的错误和问题,以及哪类问题需要关注。用户输入错误;设备错误;物理限制;代码错误。java语言规范将派生于Error类或RuntimeException类的所有...原创 2018-05-02 16:35:05 · 163 阅读 · 0 评论 -
java集合之位集的使用
使用位集来解决涉及标志位的事情要比使用boolean类的对象效率高,而且有已经实现的类库方法可以调用。假如现在要涉及一个小系统,来记录和统计动物园中动物的种类,可以增加和删除某种动物,也可以查询动物园中有哪几种动物。实现的代码如下:注:为了实现代码的模块化测试,在类中添加了一个main函数,这个函数并不会影响类的正常使用。public class BitSetTest { private Bi...原创 2018-05-11 13:54:20 · 819 阅读 · 1 评论 -
java泛型设计---学习笔记
泛型程序设计需要重点理解的内容:声明:代码借用的“莫等闲”的,博客地址:https://blog.csdn.net/sunxianghuang/article/details/51982979。尊重原创和著作权。泛型类型:用于通用型程序的设计。 //泛型类型 class Pair<T> { private T value; ...原创 2018-05-14 09:49:11 · 394 阅读 · 1 评论 -
设计模式之观察者模式总结
观察者模式是一种比较常见的模式,某些事件发生时,如果一个对象需要自动地通知其他多个对象时就会采用该方案。观察者模式分4步进行:1、写一个观察者接口,他将不同的观察者聚合在一起;2、声明不同的观察者,依据不同的需求定义不同的行为;3、定义另一个接口Subject,该接口包含两个抽象方法。一个用来注册观察者,另一个用来向观察者发送消息;4、“喂狗”类实现Sbject接口中的抽象方法,另外还需要维护一...原创 2018-05-26 21:33:09 · 289 阅读 · 0 评论 -
设计模式之责任链模式
责任链模式是一种创建处理对象序列的通用方法。一个处理对象可能需要在完成一些工作之后,将结果传递给另一个对象,这个对象接着做一些工作,再交给下一个处理对象,以此类推。通常,这种模式是通过定义一个代表处理对象的抽象类来实现的,在抽象类中会定义一个字段来记录后续对象。一旦对象完成它的工作,处理对象就会将它的工作转交给它的后续。代码中,这段逻辑看起来是这样的://设计模式之责任链模式public abs...原创 2018-05-26 22:42:19 · 161 阅读 · 0 评论 -
Lambda表达式详细解答
第一章:到底什么是Lambda表达式,这个东东怎么用?用在哪里合适?Lamdba表达式是什么?怎么用?Lambda的理解:简洁地表示可传递的匿名函数的一种方式,它没有名称,但包含参数列表,函数的主体,返回类型,可能还包含一个可以抛出异常的列表。Lambda表达式可以作为参数传递给方法或存储在变量中;举个例子: Comparator<Apple> byWeight = (Apple a1...原创 2018-05-24 13:38:14 · 710 阅读 · 0 评论 -
23种设计模式深度解读
第一种:Adapter设计模式Adapter设计模式这一设计模式存在的必要性:为利用已有代码而存在。已有的代码能够提供相似的功能,但是接口不满足需求,这个时候就采用“适应器设计模式”,这样的好处在于不必因为修改原有代码而增加测试的时间,只要测试Adapter就可以,不用测试adaptee。代码复用的理念上有区别,对已有代码“封装”而不是“修改”。这一设计模式拥有2中实现方法,一种是采用将Targe...原创 2018-06-05 10:07:11 · 290 阅读 · 0 评论 -
数据集并行处理的方法和原理----并行处理数据与性能
Stream接口可以让你以声明的方式处理数据。同时,用内部迭代取代外部迭代能够让原生Java库控制流元素的处理。Java7之前并行处理数据集合是一件很麻烦的事情:第一步:明确把包含数据的数据结构分成若干子部分;第二步,为每一个子部分分配一个线程;第三步,你需要恰当的时候对他们进行同步来避免不出现竞争的条件;第四步,等待所有线程完成,然后把这些部分结果合并起来。在本文中你将看到,如何不花大力气来实现...原创 2018-05-30 22:09:35 · 3466 阅读 · 0 评论 -
Java内存泄漏问题---归纳总结---垃圾回收机制会有失效的时候
一、要理解java垃圾回收机制的原理,就能理解为什么有些情况下,这种机制会失效。public class Heap{ public static void main(String[] args) { ArrayList list=new ArrayList(); while(true) { li...转载 2018-06-01 16:37:31 · 1152 阅读 · 1 评论 -
Java反射机制
Java反射机制--是什么,为什么,怎么用。 往往当我们面对一项新的知识时,我们往往需要知道三个方面,它是什么,它能做什么,它比原有知识强在哪里,我们该怎么使用它。当你能够解决这些问题时,便意味着你已经对这项知识入门了。一、是什么 Java Reflaction in Action有这么一句话,可以解释。反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变。通俗的讲就是反...转载 2018-07-16 10:50:49 · 135 阅读 · 0 评论 -
java注解的使用
注解目前非常的流行,很多主流框架都支持注解,而且自己编写代码的时候也会尽量的去用注解,一是方便,二是代码更加简洁。 注解的语法比较简单,除了@符号的使用之外,它基本与Java固有语法一致。Java SE5内置了三种标准注解: @Override,表示当前的方法定义将覆盖超类中的方法。 @Deprecated,使用了注解为它的元素编译器将发出警告,因为注解@Dep...转载 2018-07-16 11:17:24 · 98 阅读 · 0 评论 -
成为Java高手需要掌握的知识大盘点---第一阶段,价值:年薪20万!!!
1.熟悉IO相关接口和类,知道字符流和字节流的区别。2.理解Java反射,并熟练使用反射解决问题。3.理解泛型,并能熟练使用。知道<?extends E><?superE>的区别。4.了解Collection、List、Map、Set之间的关系,以及知道它们绝大部分实现类和子类。Vector、LinkedList、ArrayList的区别。HashMap、TreeMap、L...原创 2018-04-01 11:44:00 · 441 阅读 · 0 评论