Java
文章平均质量分 71
iblade
明年的某个时候,你会想着要是今天就行动了该多好!
展开
-
深克隆和浅克隆,深克隆的5种实现方式
是把原型对象中成员变量为值类型的属性都复制给克隆对象,把原型对象中成员变量为引用类型的引用地址也复制给克隆对象,也就是原型对象中如果有成员变量为引用对象,则此引用对象的地址是共享给原型对象和克隆对象的。原创 2024-09-26 16:16:21 · 1022 阅读 · 0 评论 -
uri.getQueryParameters(name)返回一个列表(List)
综上所述,返回列表是为了更灵活地处理URI中的查询参数,尤其是对于同一个参数名可能对应多个值的情况。这种设计既保证了功能的强大,也使得API的使用更加灵活和方便。开发者需要根据自己的需求,从返回的列表中获取一个或多个值。原创 2024-05-13 19:45:01 · 461 阅读 · 0 评论 -
String.format
只是字符串的一部分,并不属于格式化占位符。所以最终输出的格式可能类似于 “↓downloadSpeed/s - ↑uploadSpeed/s”,其中。请注意,上表只是简单概述了一些常用的通配符,更多的格式化选项和复杂的使用方法可以参考Java的官方文档。每个通配符都可以有一系列可选的格式修饰符,如宽度、精度和对齐方式等,来进一步控制格式化的输出。表示占位符的顺序索引,确保了即使参数顺序变动,也总是按照索引位置替换。方法用于格式化字符串。它使用占位符来替换特定的值。表示占位符是用于字符串类型的值,数字。原创 2024-03-21 16:32:40 · 300 阅读 · 0 评论 -
Java如何停止线程
http://www.cnblogs.com/greta/p/5624839.html原创 2016-09-06 19:53:42 · 376 阅读 · 0 评论 -
volatile可见性,指令重排
volatile的三大特性:共享变量可见性不保证原子性禁止指令重排后顺序性。CPU高速缓存和可见性问题程序运行时,数据是保存在内存当中的,但是执行程序这个工作却是由CPU完成的。那么当CPU正在执行着任务呢,突然需要用到某个数据,它就会从内存中去读取这个数据,得到了数据之后再继续向下执行任务。这是理论上理想的工作方式。然而实际上,CPU的发展是遵循摩尔定律的,每18个月左右集成电路上晶体管的数量就可以翻一倍,因此CPU的速度只会变得越来越快。但是光CPU快没有用呀,因为CPU再快还是要从内存原创 2021-05-25 14:35:05 · 330 阅读 · 0 评论 -
透析Java之i++和++i;
关于前置 ++ 与后置++的差别,这似乎再熟悉不过了。前置 ++ 是先将变量的值加1,然后使用加1后的值参与运算;而后置 ++ 是先使用该值参与运算,然后再将该值加1。没错,关于二者之间的区别,的确可以这样认为,并且按照上面操作,运算中也基本不会有什么错误。但是,如果我告诉你,后置 ++ 其实与前置 ++ 一样,在参与运算之前都会将变量的值加1,你信吗?恩,应该是不信,不过,这是真的……(1)如果...原创 2018-02-28 20:33:26 · 284 阅读 · 0 评论 -
Math.round( )
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整原创 2018-02-06 21:00:54 · 249 阅读 · 0 评论 -
Java面试String汇总
1.下面这条语句一共创建了多少个对象:String s=”a”+”b”+”c”+”d”; 答:对于如下代码:String s1 = “a”;String s2 = s1 + “b”;String s3 = “a” + “b”;System.out.println(s2 == “ab”);System.out.println(s3 == “ab”);第一条语句打印的结果为false,第二条语句打印的原创 2018-02-06 15:37:39 · 1271 阅读 · 1 评论 -
java判断是否含有特殊字符
/** * 判断是否含有特殊字符 * * @param str * @return true为包含,false为不包含 */ public static boolean isSpecialChar(String str) { String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].;原创 2017-04-28 11:24:38 · 64098 阅读 · 6 评论 -
透析Java之“关键字”和“标识符”
一个非常典型的面试题:在Java中有没有goto? 除了goto,今天我们还要谈到几个特别的标识,分别是const、true、false、null。这些标识在Java语言中,是不是关键字呢?如果是,该如何使用?如果不是,与普通的标识符是否又存在什么区别?goto: 在C / C++等语言中,使用goto可以实现程序的跳转,从某些方面来说其提供了一定的方便性,例如,在多重嵌套的循环中,可以原创 2018-02-23 10:59:52 · 779 阅读 · 0 评论 -
抽象类可以被实例化吗?匿名类又是什么?
public class TestClass { private InterfaceA a = new InterfaceA() { @Override public void testA() { } };//成员匿名类,例如在Android开发中常用的Handler。 public static void main(St...原创 2018-06-21 11:27:32 · 7593 阅读 · 2 评论 -
Java 实现顺时针螺旋二维数组输出矩阵
如何实现一个输入一个数字N打印N平方数按照上图次序。 private void count(int num) { int colNum[][] = new int[num][num]; final int RIGHT = 0x0, DOWN = 0x1, LEFT = 0x2, UP = 0x3; int type, width, height...原创 2018-06-13 15:49:10 · 3469 阅读 · 2 评论 -
Java中clone( )和new效率比较
对象创建的几种方法:1.使用new关键字2.使用clone方法3.反射机制4.反序列化以上四种都可以产生java对象1,3都会明确的显式的调用构造函数2是在内存上对已有对象的影印 所以不会调用构造函数4是从文件中还原类的对象 也不会调用构造函数clone和new那更快?直接上代码测试:package com.miivii.javalib;/** * Created by ylWang on ...原创 2018-06-20 17:37:18 · 13094 阅读 · 7 评论 -
人脸信息集合去重
问题:人脸识别返回一个识别集合,元素包含三个字段trackId,face,name。每条数据均有trackId,且有可能会重复;不一定有name和face。我们认为同一个trackId的条目 均为重复信息,需求是 去除重复trackId,并保证保留下的那条信息最全,优先考虑name。源数据形式如下:遇到这种问题,建议在Person中加一个字段来标识自己的信息完整性,/...原创 2018-07-07 18:54:10 · 2107 阅读 · 5 评论 -
JVM类加载三步走
Java虚拟机通过加载、连接和初始化一个类型,使该类型可以被正在运行的Java程序使用。加载:把二进制形式的Java类型读入Java虚拟机中。 连接:把加载的二进制形式的类型数据合并到虚拟机的运行时状态中去。 1. 验证:确保Java类型数据格式正确并且适合于Java虚拟机使用。 2. 准备:负责为该类型分配它所需内存。 3. 解析:把常量池中的符号引用转换为直接引用。(可推迟到运行中的程序...原创 2018-09-04 17:35:11 · 418 阅读 · 0 评论 -
List去重的N种方式
/** * LinkedHashSet有个特性:不能添加重复数据并能保证添加顺序 * * @param list */ public static void removeListDuplicate1(List<String> list) { LinkedHashSet<String> set = new L...原创 2019-01-25 17:35:40 · 4187 阅读 · 0 评论 -
Java中值传递,引用传递
前言我们都知道,java中数据类型分为基本数据类型和引用数据类型。基本数据类型 整型:byte,short,int,long浮点型:float,double字符型:char布尔型:boolean引用数据类型 数组类接口方法的参数分为实际参数和形式参数。 形式参数:定义方法时括号内写的参数。 如private void test(int a , byte[] b){…原创 2018-01-30 16:31:11 · 490 阅读 · 0 评论 -
Json转Map,List
/** * Json 转成 Map<> * @param jsonStr * @return */ public static Map<String, Object> getMapForJson(String jsonStr){ JSONObject jsonObject ; try { json原创 2017-11-27 14:17:24 · 865 阅读 · 0 评论 -
修饰符和static用法
修饰符:访问修饰符:public 所有类均可访问 protected 当前类、同包的类、不同包的子类 default 当前类、同包类 private 当前类 final:最终的,可以修饰类、方法、成员变量、局部变量 final修饰的类不能被继承 final修饰的方法不能被重写 final修饰的变量,值不能被修改,常量abstract:修饰类、修饰方法 注意:abstract不原创 2016-01-23 17:29:14 · 758 阅读 · 0 评论 -
TCP和UDP比较
一、TCP/IP协议TCP/IP协议,你一定经常听说吧,其中TCP(Transmission Control Protocol)称为传输控制协议,IP(Internet Protocol)称为因特网互联协议。 其实TCP/IP协议,是一个协议簇,就是一大堆协议的集合。 这一大套协议定义了整个互联网通信的基础,比如一次网络链接要经过哪些步骤,一块数据传输过程中应该如何解释,这块数据该如何展示给原创 2016-03-12 15:35:05 · 1874 阅读 · 1 评论 -
单例模式的优缺点
单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。单例模式有三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。 单例模式是结构最简单的设计模式一,在它的核心结构中只包含一个被称为单例类的特殊类。 单例模式结构图中原创 2016-04-09 20:55:43 · 17498 阅读 · 1 评论 -
Math中的方法
java.math.Math类常用的常量和方法: Math.PI 记录的圆周率 Math.E记录e的常量 Math.abs 求绝对值 Math.sin 正弦函数 Math.asin 反正弦函数 Math.cos 余弦函数 Math.acos 反余弦函数 Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数 Math.toDegrees 弧度转原创 2016-08-03 17:40:56 · 1040 阅读 · 1 评论 -
java运算类型转化int long
大家都知道,在进行运算时,java会隐式的自动进行类型转化,那么有哪些情况会进行转化呢?总结如下: 一、算术运算符 单目运算符:+(取正)-(取负) ++(自增1) –(自减1) 1.1 +(取正)-(取负) 当操作数是byte,short,char时,会自动转化为int类型;返回结果为int。 当操作数是int,long时,不转化,原来是啥类型,还是啥类型。 1.2 ++(自增1) –原创 2016-09-28 15:17:58 · 3126 阅读 · 1 评论 -
RGB转YUV
/** * RGB转换成YCbCr * * @param R 0-255的数值表示R * @param G 0-255的数值表示G * @param B 0-255的数值表示B * @return yuv数组,依次Y,U, */ private byte[] RGBToYUV(int R, int G, int B) {原创 2017-04-28 11:11:20 · 2830 阅读 · 0 评论 -
Java去掉字符串中空格,换行,制表符
public static String replaceBlank(String str) { String dest = ""; if (str != null) { Pattern p = Pattern.compile("\t|\r|\n|\\s*"); Matcher m = p.matcher(str);原创 2017-05-24 18:01:57 · 2050 阅读 · 0 评论 -
图片旋转,压缩,保存,拷贝+dp2px
/** * 选择变换 * * @param origin 原图 * @param alpha 旋转角度,可正可负 * @return 旋转后的图片 */ public Bitmap rotateBitmap(Bitmap origin, float alpha) { if (origin == null) {原创 2017-04-28 12:11:38 · 1180 阅读 · 0 评论 -
java读取文本
读写文本文件,采用Reader是非常方便,如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。可以在构造方法里指定编码的方式,若不指定,将采用底层操作系统的默认编码方式,例如GBK等。read()方法是比较耗费时间的,如果为了提高效率我们可以使用BufferedReader对Read原创 2017-05-17 17:31:30 · 495 阅读 · 0 评论 -
ByteBuffer基本概念
最近在研究OpenGL,众所周知Java运行在虚拟机Dalvik Virtual Machine ,运行在虚拟机的代码是无法访问本地环境的,想要Android的java代码与OpenGL通信,两种途径:1,Java本地接口 就是常见的JNI调用;2,改变内存分配的方式,Java有一种特殊的类集合,它们可以分配本地内存块,并且把Java的数据复制到本地内存,避免GC的管控,那就是字节缓冲区NIO,By原创 2017-05-17 18:30:54 · 802 阅读 · 1 评论 -
byte 为什么要 & 0xff?
在MD5运算中 通常会把MD5(十六进制的byte[])转成HexString, 会用到一个方法 private static String bytesToHex1(byte[] md5Array) { StringBuilder strBuilder = new StringBuilder(); for (int i = 0; i < md5Array.lengt原创 2017-06-15 15:25:30 · 9774 阅读 · 0 评论 -
Java如何获取MD5值
MD5,Message Digest Algorithm 5,是一种被广泛使用的信息摘要算法,可以将给定的任意长度数据通过一定的算法计算得出一个 128 位固定长度的散列值。如百科介绍,MD5 具有如下特点:压缩性:任意长度的原数据,其 MD5 值都是固定的,即 128 位;易计算:计算原数据的 MD5 值是一个比较容易的过程;抗修改:原数据的任意改动,所得到的 MD5 值都是迥然不同的;防原创 2017-06-15 14:51:22 · 28386 阅读 · 2 评论 -
Java中CharSequence和String
charSequence是一个接口,表示char值的一个可读序列。此接口对许多不同种类的char序列提供统一的自读访问。此接口不修改该equals和hashCode方法的常规协定,因此,通常未定义比较实现 CharSequence 的两个对象的结果。他有几个实现类:CharBuffer、String、StringBuffer、StringBuilder。 CharSequence与String都能原创 2017-09-27 11:41:23 · 18310 阅读 · 1 评论 -
Java异常Error和Exception的区别
异常发生的原因有很多,通常包含以下几大类:用户输入了非法数据。要打开的文件不存在。网络通信时连接中断,或者JVM内存溢出。这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个原创 2017-10-10 18:50:19 · 49292 阅读 · 11 评论 -
Android去除字符串中空格制表符换行
两种方法 去除字符串中空格制表符换行: public String checkString(String str) { if (TextUtils.isEmpty(str)) return ""; int len = str.length(); int i = 0, j = 0; char[] strChar = str.toChar原创 2017-08-28 18:08:30 · 12365 阅读 · 0 评论 -
抽象类和接口——知识点梳理
抽象类当多个类中出现相同功能,但是功能主体不同, 这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。抽象:简言之,就是看不懂。抽象类的特点: 1,抽象方法一定在抽象类中。 2,抽象方法和抽象类都必须被abstract关键字修饰。 3,抽象类不可以用new创建对象。因为调用抽象方法没意义。 4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。原创 2016-01-23 17:06:22 · 980 阅读 · 0 评论