Java
文章平均质量分 80
nullZgy
Android 开发。
展开
-
Java的“泛型”特性,你以为自己会了?
使用Java的小伙伴,对于Java的一些高级特性一定再熟悉不过了,例如集合、反射、泛型、注解等等,这些可以说我们在平时开发中是经常使用到的,尤其是集合,基本是只要写代码没有用不到的,今天我们先来谈谈泛型。 1. 定义 在了解一个事物之前,我们必定要先知道他的定义,所以我们就从定义开始,去一步一步揭开泛型的神秘面纱。 # 泛型(generics) 他是 JDK5 中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。泛型的本质就是参数化类型...转载 2021-02-27 11:03:48 · 187 阅读 · 0 评论 -
重温堆排序实现!
堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子节点的键值或索引总是小于(或者大于)它的父节点。 概述 若以升序排序说明,把数组转换成最大堆(Max-Heap Heap),这是一种满足最大堆性质(Max-Heap Property)的二叉树:对于除了根之外的每个节点i, A[parent(i)] ≥ A[i]。 重复从最大堆取出数值最大的结点(把根结点和最后一个结点交换,把交换后的最后一个结点移出堆),并让残余的堆维持最原创 2021-01-25 11:11:17 · 108 阅读 · 0 评论 -
非常强大的java时间处理工具类!
xk-time 是时间转换,时间计算,时间格式化,时间解析,日历,时间cron表达式和时间NLP等的工具,使用Java8,线程安全,简单易用,多达70几种常用日期格式化模板,支持Java8时间类和Date,轻量级,无第三方依赖。 为什么要开发这个工具? (1)Java8以前的Date API设计不太好,使用不方便,往往会有线程安全问题。 xk-time工具包,使用java8 api,其中Instant、LocalDate、LocalDateTime、LocalTime、ZonedDateTime.原创 2021-01-25 10:18:03 · 1328 阅读 · 0 评论 -
Java线程同步器原理剖析
CountDownLatch原理剖析 日常开发中经常遇到一个线程需要等待一些线程都结束后才能继续向下运行的场景,在CountDownLatch出现之前通常使用join方法来实现,但join方法不够灵活,所以开发了CountDownLatch。 示例 public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch = new CountDownLatch(2);原创 2021-01-25 09:58:48 · 163 阅读 · 0 评论 -
代码中大量的if/else,你有什么优化方案?
观点一(灵剑): 期迭代懒得优化,来一个需求,加一个if,久而久之,就串成了一座金字塔。 当代码已经复杂到难以维护的程度之后,只能狠下心重构优化。那,有什么方案可以优雅的优化掉这些多余的if/else? 1. 提前return 这是判断条件取反的做法,代码在逻辑表达上会更清晰,看下面代码: if (condition) { // do something } else { return xxx; } if (!condition) { ...原创 2021-01-25 09:38:28 · 794 阅读 · 0 评论 -
Socket的轻量级的实现
最近在做一些Socket通讯的项目,用一些简单的Socket又不稳定,所以 利用这个机会自己封了一套Socket通讯的实现方法.,实现的过程非常简单.经过测试,使用起来还算稳定.换不多说 直接上代码. // 首先是几个回调,用于Socket转态和数据的回调 public interface ConnectListener { void receive(byte[] data); void disconnect(); void connectOk(); void connectFa...原创 2020-05-22 17:35:18 · 244 阅读 · 0 评论 -
16进制,byte,byte数组之间装换
package com.rmt.updata; import java.util.Locale; public class Hex { /** * 字符串转换成十六进制字符串 * @param String * str 待转换的ASCII字符串 * @return String 每个Byte之间空格分隔,如: [61 6C 6B] */ publi原创 2016-10-25 08:55:12 · 4517 阅读 · 0 评论 -
深入浅出反射
什么是反射? 反射是一种能够在程序运行时动态访问、修改某个类中任意属性(状态)和方法(行为)的机制(包括private实例和方法),java反射机制提供了以下几个功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法。 反射涉及到四个核心类: jav原创 2016-09-12 15:39:30 · 1784 阅读 · 0 评论 -
在Java中,return null 是否安全, 为什么?
Java代码中return value 为null 是不是在任何情况下都可以,为什么不会throw NullPointerException? Java语言层面:null值自身是不会引起任何问题的。它安安静静的待在某个地方(局部变量、成员字段、静态字段)不会有任何问题;它从一个地方被搬运到另一个地方也不会有任何问题(变量赋值、返回值等)。唯一会因为null值而引起NullPointerE原创 2016-09-12 15:25:17 · 6499 阅读 · 0 评论 -
贴一个基本知识
============================================================================================================ ==================================================================================原创 2016-08-24 16:50:26 · 614 阅读 · 0 评论 -
Java 动态代理作用是什么?
首先你要明白静态代理的作用我们有一个字体提供类,有多种实现(从磁盘,从网络,从系统) public interface FontProvider { Font getFont(String name); } public abstract class ProviderFactory { public static FontProvider getFontProvider() {原创 2016-09-12 12:00:22 · 1881 阅读 · 0 评论 -
修改 Java 中的接口有什么作用?
接口就是个招牌。 比如说你今年放假出去杭州旅游,玩了一上午,你也有点饿了,突然看到前面有个店子,上面挂着KFC,然后你就知道今天中饭有着落了。 KFC就是接口,我们看到了这个接口,就知道这个店会卖炸鸡腿(实现接口)。 那么为神马我们要去定义一个接口涅,这个店可以直接卖炸鸡腿啊(直接写实现方法),是的,这个店可以直接卖炸鸡腿,但没有挂KFC的招牌,我们就不能直接简单粗暴的冲进去叫服原创 2016-09-12 11:50:18 · 989 阅读 · 0 评论