自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(525)
  • 收藏
  • 关注

转载 java算法 -- 基数排序

基数排序(英语:Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Machine)上的贡献[1]。它是这样实现的:将所有待比较数值(正整数)统...

2019-06-13 17:12:00 300

转载 Java算法 -- 桶排序

桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间((大O符号))。但桶排序并不是比较排序,他不受到下限的影响。桶排序以下列程序进行:设置一个定量的数组当作空...

2019-06-13 15:48:00 338

转载 java算法 -- 归并排序

归并排序:先分解再合并。分解:分为若干个子序列,每个子序列是有序的。合并:然后再把有序子序列合并为整体有序序列。public class MergeSortTest { public static void main(String[] args) { int[] array = {1, 2, 5, 41, 7, 11, 13, 17, 59, 19, ...

2019-04-29 10:53:00 300

转载 java算法 -- 希尔排序

java算法 -- 希尔排序基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。操作方法:选择一个增量序列 t1,t2,…,tk,其中 ti>tj,tk=1;按增量序列个数 k,对序列进行 k 趟排序;每趟排序,根据对应的增量 ti,将待排序列分割成若干长度为 m 的子序列,分别...

2019-04-24 11:34:00 254

转载 java算法 -- 快速排序

java算法 -- 快速排序快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。一次循环:从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后,又从前往后开始比较,如果有比基准值大的,交换位置,如果没有继...

2019-04-17 16:26:00 143

转载 Java算法 -- 插入排序

java算法 -- 插入排序通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。如果输入数组已经是排好序的话,插...

2019-04-16 17:55:00 131

转载 java算法 -- 冒泡排序

java算法 -- 冒泡排序比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成。public class BubbleSortTest { public static void m...

2019-04-16 11:00:00 139

转载 Java算法 -- 二分查找

折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。通过递归和非递归实现二分查找:public class Main { public static void main(String[...

2019-04-15 17:09:00 120

转载 Sql知识点总结

一、数据库对象:表(table) 视图(view) 序列(sequence) 索引(index) 同义词(synonym)视图(view) : 存储起来的 select 语句create view emp_vu5asselect employee_id, last_name, salaryfrom employeeswhere department_id = 90;se...

2019-03-06 09:07:00 112

转载 java实现 链表反转

输入一个链表,反转链表后,输出新链表的表头。递归法public class RevnNode { public static class Node { public int value; public Node nextNode; public int getValue() { return val...

2019-03-05 17:17:00 137

转载 java 11 Java Flight Recorder

Flight Recorder源自飞机的黑盒子Flight Recorder以前是商业版的特性,在java11当中开源出来,它可以导出事件到文件中,之后可以用Java Mission Control来分析。可以在应用启动时配置java -XX:StartFlightRecording,或者在应用启动之后,使用jcmd来录制,比如Pid是进程id$ jcmd <pid> ...

2019-02-10 21:05:00 366

转载 java 11 实现RFC7539中指定的ChaCha20和Poly1305两种加密算法, 代替RC4

实现 RFC 7539的ChaCha20 and ChaCha20-Poly1305加密算法RFC7748定义的秘钥协商方案更高效, 更安全. JDK增加两个新的接口XECPublicKey 和 XECPrivateKeyKeyPairGenerator kpg = KeyPairGenerator.getInstance(“XDH”);NamedParameterSpec p...

2019-02-10 20:34:00 695

转载 java 11 完全支持Linux容器(包括Docker)

许多运行在Java虚拟机中的应用程序(包括Apache Spark和Kafka等数据服务以及传统的企业应用程序)都可以在Docker容器中运行。但是在Docker容器中运行Java应用程序一直存在一个问题,那就是在容器中运行JVM程序在设置内存大小和CPU使用率后,会导致应用程序的性能下降。这是因为Java应用程序没有意识到它正在容器中运行。随着Java 10的发布,这个问题总算得以解决...

2019-02-10 20:29:00 297

转载 java 11 ZGC(可伸缩,低延迟的gc)

ZGC, A Scalable Low-Latency Garbage Collector(Experimental)可伸缩,低延迟的gcZGC, 这应该是JDK11最为瞩目的特性, 没有之一. 但是后面带了Experimental, 说明这还不建议用到生产环境.GC暂停时间不会超过10ms既能处理几百兆的小堆, 也能处理几个T的大堆(OMG)和G1相比, 应用吞吐能力不会下降...

2019-02-04 14:24:00 233

转载 java 11 新的Epsilon垃圾收集器

A NoOp Garbage CollectorJDK上对这个特性的描述是: 开发一个处理内存分配但不实现任何实际内存回收机制的GC, 一旦可用堆内存用完, JVM就会退出.如果有System.gc()调用, 实际上什么也不会发生(这种场景下和-XX:+DisableExplicitGC效果一样), 因为没有内存回收, 这个实现可能会警告用户尝试强制GC是徒劳.用法 : -XX:+...

2019-02-04 10:01:00 214

转载 java 11 移除的一些其他内容,更简化的编译运行程序,Unicode 10,移除了不太使用的JavaEE模块和CORBA技术,废除Nashorn javascript引擎,不建议使用Pack200...

移除的一些其他内容移除项移除了com.sun.awt.AWTUtilities移除了sun.misc.Unsafe.defineClass,使用java.lang.invoke.MethodHandles.Lookup.defineClass来替代移除了Thread.destroy()以及 Thread.stop(Throwable)方法移除了sun.nio.ch.disab...

2019-02-03 22:39:00 440

转载 java 11 标准Java异步HTTP客户端

这是 Java 9 开始引入的一个处理 HTTP 请求的的 HTTP Client API,该 API 支持同步和异步,而在 Java 11 中已经为正式可用状态,你可以在 java.net 包中找到这个 API。来看一下 HTTP Client 的用法:var request = HttpRequest.newBuilder().uri(URI.create("https://...

2019-02-03 22:07:00 271

转载 java 11 增加了一系列的字符串处理方法,Optional 加强 ,改进的文件API

增加了一系列的字符串处理方法如以下所示。// 判断字符串是否为空白" ".isBlank(); // true// 去除首尾空白" Javastack ".strip(); // "Javastack"// 去除尾部空格" Javastack ".stripTrailing(); // " Javastack"// 去除首部空格" Javastack ".stripLe...

2019-02-03 21:42:00 230

转载 java 11 Stream 加强

Stream 是 Java 8 中的新特性,Java 9 开始对 Stream 增加了以下 4 个新方法。1) 增加单个参数构造方法,可为nullStream.ofNullable(null).count(); // 02) 增加 takeWhile 和 dropWhile 方法Stream.of(1, 2, 3, 2, 1).takeWhile(n -> n < ...

2019-02-03 19:26:00 233

转载 java 11 不可修改集合API

不可修改集合API自 Java 9 开始,Jdk 里面为集合(List/ Set/ Map)都添加了 of 和 copyOf 方法,它们两个都用来创建不可变的集合,来看下它们的使用和区别。示例1:var list = List.of("Java", "Python", "C");var copy = List.copyOf(list);System.out.println(li...

2019-02-02 22:28:00 151

转载 java 11 局部变量类型推断

什么是局部变量类型推断?var javastack = "javastack";System.out.println(javastack);大家看出来了,局部变量类型推断就是左边的类型直接使用 var 定义,而不用写具体的类型,编译器能根据右边的表达式自动推断类型,如上面的 String 。var javastack = "javastack";就等于:String jav...

2019-02-02 21:44:00 183

转载 java 11 值得关注的新特性

JEP 181: Nest-Based Access Control 基于嵌套的访问控制JEP 309: Dynamic Class-File Constants 动态类文件JEP 315: Improve Aarch64 Intrinsics 改进 Aarch64 的效率JEP 318: Epsilon: A No-Op Garbage Collector 无任何操作的垃圾收集器...

2019-02-01 23:44:00 150

转载 MessageDigest来实现数据加密

MessageDigestMessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。MessageDigest 对象开始被初始化。该对象通过使用 update 方法处理数据。任何时候都可以调用 reset 方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用 dige...

2019-01-20 23:21:00 236

转载 LinkedList(JDK1.8)源码分析

双向循环链表双向循环链表和双向链表的不同在于,第一个节点的pre指向最后一个节点,最后一个节点的next指向第一个节点,也形成一个“环”。而LinkedList就是基于双向循环链表设计的。LinkedList 的继承关系LinkedList 是一个继承于AbstractSequentialList的双向循环链表。它也可以被当作堆栈、队列或双端队列进行操作。public cla...

2019-01-11 12:22:00 163

转载 gradle配置统一管理

配置全局参数根目录build.gradle文件:主要关注ext部分// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.2.61' repos...

2019-01-10 15:10:00 277

转载 Android 新架构组件 -- WorkManager

Android WorkManagercompile "android.arch.work:work-runtime:1.0.0-alpha02"继承Worker类并实现doWork()方法public class MineWorker extends Worker { @NonNull @Override public WorkerResult doWor...

2019-01-02 19:55:00 229

转载 Android 架构 -- Room

gradle依赖:// add for roomimplementation "android.arch.persistence.room:runtime:1.1.1"// room 配合 RxJavaimplementation "android.arch.persistence.room:rxjava2:1.1.1"annotationProcessor 'android....

2018-12-12 16:19:00 90

转载 网络分层和Http协议原理

网络分层:应用层传输层网络层数据链路层物理层物理层:比特流在节点之间的传输,是计算机连接起来的物理手段。数据链路层:控制网络层和物理层之间的通信,功能是在不可靠的物理线路上进行数据可靠传输。网络层:两台主机上应用程序端到端的通信。两个协议:TCP 传输控制协议,可靠。UDP 用户数据报协议,不可靠,无连接的协议。传输层:Http、FTP、Telnet、...

2018-10-24 21:04:00 225

转载 FastDFS 文件上传工具类

FastDFS文件上传工具类 import org.csource.common.NameValuePair; import org.csource.fastdfs.ClientGlobal; import org.csource.fastdfs.StorageClient1; import org.csource.fastdfs.StorageServe...

2018-10-22 20:44:00 192

转载 Java线程池中submit()和execute之间的区别?

一:submit()方法,可以提供Future < T > 类型的返回值。executor()方法,无返回值。execute无返回值public void execute(Runnable command) { if (command == null) throw new NullPointerException();//抛掉异...

2018-10-13 23:49:00 354

转载 编写高质量代码:改善Java程序的151个建议 --[117~128]

编写高质量代码:改善Java程序的151个建议 --[117~128]Thread 不推荐覆写start方法先看下Thread源码:public synchronized void start() { // 判断线程状态,必须是为启动状态 /** * This method is not invoked for the main m...

2018-08-14 16:42:00 174

转载 编写高质量代码:改善Java程序的151个建议 --[106~117]

编写高质量代码:改善Java程序的151个建议 --[106~117]动态代理可以使代理模式更加灵活interface Subject { // 定义一个方法 public void request();}// 具体主题角色class RealSubject implements Subject { // 实现方法 @Override ...

2018-08-13 17:31:00 142

转载 编写高质量代码:改善Java程序的151个建议 --[98~105]

建议的采用顺序是List中泛型顺序依次为T、?、Object(1)、List是确定的某一个类型  List表示的是List集合中的元素都为T类型,具体类型在运行期决定;List<?>表示的是任意类型,与List类似,而List则表示List集合中的所有元素为Object类型,因为Object是所有类的父类,所以List也可以容纳所有的类类型,从这一字面意义上分析,Li...

2018-08-13 11:02:00 127

转载 编写高质量代码:改善Java程序的151个建议 --[78~92]

编写高质量代码:改善Java程序的151个建议 --[78~92]HashMap中的hashCode应避免冲突多线程使用Vector或HashTableVector是ArrayList的多线程版本,HashTable是HashMap的多线程版本。非稳定排序推荐使用List对于变动的集合排序set=new TreeSet(new ArrayList(set));重新生成一个S...

2018-08-10 17:26:00 138

转载 编写高质量代码:改善Java程序的151个建议 --[65~78]

编写高质量代码:改善Java程序的151个建议 --[65~78]原始类型数组不能作为asList的输入参数,否则会引起程序逻辑混乱。public class Client65 { public static void main(String[] args) { int data [] = {1,2,3,4,5}; List list= Arr...

2018-08-09 17:41:00 157

转载 编写高质量代码:改善Java程序的151个建议 --[52~64]

编写高质量代码:改善Java程序的151个建议 --[52~64]推荐使用String直接量赋值Java为了避免在一个系统中大量产生String对象(为什么会大量产生,因为String字符串是程序中最经常使用的类型),于是就设计了一个字符串池(也叫作字符串常量池,String pool或String Constant Pool或String Literal Pool),在字符串池中容...

2018-08-07 09:07:00 131

转载 编写高质量代码:改善Java程序的151个建议 --[36~51]

编写高质量代码:改善Java程序的151个建议 --[36~51]工具类不可实例化工具类的方法和属性都是静态的,不需要生成实例即可访 问,而且JDK也做了很好的处理,由于不希望被初始化,于是就设置了构造函数private的访问权限,表示出了类本身之外,谁都不能产生一个实例:class UtilsClazz{ public UtilsClazz(){ thro...

2018-08-06 14:29:00 112

转载 编写高质量代码:改善Java程序的151个建议 --[26~36]

提防包装类型的null值public static int testMethod(List<Integer> list) { int count = 0; for (Integer i : list) { count += (i != null) ? i : 0; } return co...

2018-07-24 08:56:00 113

转载 编写高质量代码:改善Java程序的151个建议 --[0~25]

警惕自增的陷阱public class Client7 { public static void main(String[] args) { int count=0; for(int i=0; i<10;i++){ count=count++; } System.out.println...

2018-07-23 15:33:00 149

转载 省市区三级数据的MYSQL内容

省市区三级数据的MYSQL内容省:/*Navicat MySQL Data TransferSource Server : rm-2ze0lz594rof5nn72.mysql.rds.aliyuncs.comSource Server Version : 50640Source Host : rm-2ze0lz594rof5nn72.m...

2018-07-23 09:01:00 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除