
Java
文章平均质量分 50
java基本语法和高级用法
追梦菜鸟
IT男,乐活族,爱旅游、运动、聊天,爱看电视剧
展开
-
String.split()用法
Java中可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组。 stringObj.split([separator,[limit]]) separator: 可选项。字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 limit: 参数控制separator应用的次数,因此影响所得数组的长度。 if(n>0):则模式将被最多应用n-1次,数组的长度将不会大于n,而且数组的最后..原创 2021-01-09 11:39:31 · 60875 阅读 · 0 评论 -
抽象类使用Jackson序列化
当java对象中含List<Object>时,如果Object一个抽象类或接口,这里就会出现java多态的现象,比如,List<Animal>, 如果Animal是个抽象类,并且有多个子类时,由于List中保存的Animal没有明确指向具体的子类或实现类,json反序列化java对象时就会抛出提示:Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException:Can ...原创 2020-08-30 23:20:42 · 3236 阅读 · 0 评论 -
Guava Cache用法详解
Guava Cache与ConcurrentMap很相似,但也不完全一样。最基本的区别是ConcurrentMap会一直保存所有添加的元素,直到显式地移除。相对地,Guava Cache为了限制内存占用,通常都设定为自动回收元素。在某些场景下,尽管LoadingCache 不回收元素,它也是很有用的,因为它会自动加载缓存。 Guava Cache是在内存中缓存数据...原创 2019-12-21 17:24:56 · 1098 阅读 · 0 评论 -
String,StringBuilder和StringBuffer用法比较
转载链接:https://www.cnblogs.com/su-feng/p/6659064.html这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。1.运行速度 在这方面运行速度快慢为:StringBuilder > StringBuffer > String String最慢的原因:String为字符串常量,而StringB...转载 2018-08-02 17:44:21 · 191 阅读 · 0 评论 -
Java数组拷贝方式
目前在Java中数组拷贝提供了如下方式:clone System.arraycopy Arrays.copyOf Arrays.copyOfRange 直接把原数组的值复制到目标数组(这种方式本质上和上面4种没有区别)import java.util.Arrays;/** * 数组拷贝的几种方式 * * @author psb * */public cla...原创 2018-10-07 16:29:42 · 234 阅读 · 0 评论 -
Java读取properties文件——中文乱码问题
初用properties,读取java properties文件的时候如果value是中文,会出现读取乱码的问题。给定country.properties文件如下:China=中国USA=美国Japan=日本Properties properties = new Properties(); InputStream inputStream = this.getClass().ge...原创 2019-01-03 20:43:33 · 9985 阅读 · 0 评论 -
Java正则表达式——group方法详解
捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。例如,正则表达式 (dog) 创建了单一分组,组里包含"d","o",和"g"。捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组:((A)(B(C))) (A) (B(C)) (C)可以通过调用 matcher 对象的 groupCount 方法来查看表达...原创 2018-12-31 17:32:19 · 16754 阅读 · 0 评论 -
java动态代理
Java动态代理的实现方式包括:(1)通过反射类Proxy以及InvocationHandler回调接口实现;(2)使用CGLib实现一、使用反射类Proxy以及InvocationHandler回调接口实现 在使用该种方式时,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动...转载 2019-02-23 23:25:09 · 129 阅读 · 0 评论 -
Java 8——Lamada表达式
利用java8 的lamada表达式,可以用简洁高效的代码来实现一些数据处理。 (1)List操作 (2)Map操作 (3)List和Map互换原创 2019-03-02 12:04:37 · 1179 阅读 · 0 评论 -
JDK8——Map操作
本文涵盖的JDK8中引进的Map方法有:getOrDefault(Object,V),putIfAbsent(K,V),remove(Object,Object),replace(K,V),和 replace(K,V,V)。import java.util.HashMap; ...原创 2019-06-08 10:19:13 · 2986 阅读 · 0 评论 -
Java Thrift数据类型
1.基本类型(括号内为对应的Java类型)bool(boolean): 布尔类型(TRUE or FALSE)byte(byte): 8位带符号整数i16(short): 16位带符号整数i32(int): 32位带符号整数i64(long): 64位带符号整数double(double): 64位浮点数string(String): 采用UTF-8编码的字符串2.特殊类型(...转载 2019-08-31 21:46:09 · 1798 阅读 · 1 评论 -
java语法——抽象类和接口联系和区别
一、接口和抽象类的相似性1.接口和抽象类都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承。2.接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。二 接口和抽象类的区别 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。1.接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。2.接口可以多继...原创 2018-04-13 15:17:10 · 366 阅读 · 0 评论 -
Java集合操作——Map排序
一、Map介绍在讲解Map排序之前,我们先来稍微了解下map。map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍):HashMap:我们最常用的Map,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度。HashMap最多只允许一条...原创 2018-04-01 16:38:40 · 493 阅读 · 0 评论 -
equals和==的区别小结
==:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如:int a=10 与 long b=10L 与 double c...转载 2018-02-21 10:41:15 · 439 阅读 · 0 评论 -
java文件操作
file(内存)----输入流---->【程序】----输出流---->file(内存) 当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作转载 2016-01-16 11:39:31 · 464 阅读 · 0 评论 -
对象的上转型对象
假设Animal类是Tiger类的父类,当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如: Animal a; a=new Tiger(); 或 Animal a; Tiger b=new Tiger(); a=b; 这时,称对象a是对象b的上转型对象(好比原创 2016-01-08 20:20:32 · 3793 阅读 · 0 评论 -
java线程池用法
一.Java通过Executors提供四种线程池newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务原创 2017-08-01 09:49:29 · 261 阅读 · 0 评论 -
Java集合-----ConcurrentHashMap原理分析
转载:http://www.cnblogs.com/ITtangtang/p/3948786.html 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,转载 2017-08-02 08:53:02 · 365 阅读 · 0 评论 -
java中synchronized的用法
在java程序设计中,synchronized共有4种用法,分别是在方法声明时使用、对某一代码块使用、synchronized后面括号里是一对象、synchronized后面括号里是类。 1.方法声明时使用,放在范围操作符(public等)之后,返回类型声明(void等)之前.即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在synchro原创 2017-08-09 15:51:45 · 652 阅读 · 0 评论 -
java多线程读取、操作List集合
本文转载自:http://blog.youkuaiyun.com/wang1989cs/article/details/47663565 最近在写项目代码时,遇到一个问题:如何让n个线程顺序遍历含有n个元素的List集合,几经折腾,终于找到了下面的解决方法。如果有更好的方法,可以共同交流。import java.util.ArrayList;import java.util.List;import转载 2017-09-02 08:17:04 · 14768 阅读 · 2 评论 -
java获取和设置系统变量(环境变量)
一、Java获取环境变量Java 获取环境变量的方式很简单: System.getEnv() 得到所有的环境变量System.getEnv(key) 得到某个环境变量Map map = System.getenv(); Iterator it = map.entrySet().iterator(); while(it.hasNext()) { En原创 2017-10-01 14:40:10 · 42033 阅读 · 3 评论 -
java标号—continue,break用法详解
可以给语句块加标号赋予它们名称,标号位于语句之前。标号只能被continue和break引用。格式如下: label:statement 语句前只允许加一个标号,标号后面不能跟大括号。通过用break后加标号对处于标号中的语句进行控制。往往标号后是for.while.do-while等循环。 通过用标号,我们可以对外层循环进行控制 1)用con原创 2017-11-13 16:38:23 · 5736 阅读 · 0 评论 -
子类继承父类—构造函数用法详解
java继承中对构造函数是不继承的,只是调用(隐式或显式)。1.例子程序: public class FatherClass { public FatherClass() { System.out.println(100); } public FatherClass(int age) { System.out.println(age); }原创 2017-11-23 17:40:19 · 1900 阅读 · 0 评论 -
JSON用法—net.sf.json.JSONObject
JSONObjetc和JSONArray存在多种用法,下面介绍JSONObject和JSONArray的创建、合并以及解析。import java.util.ArrayList;import java.util.HashMap;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class JsonCo原创 2018-01-20 15:59:44 · 36465 阅读 · 0 评论 -
Java多线程编程
线程的创建与生命周期一、线程的类型 主线程:每个Java应用程序都有一个缺省的主线程。Java应用程序总是从主类的main方法开始执行。当JVM加载代码,发现main方法之后,就会启动一个线程,这个线程称为”主线程“(main线程),该线程负责执行main方法。 其他线程:在main方法执行过程中创建的的线程就称为其他线程称。 二者关联:main方法即使执行完最后原创 2016-01-15 22:22:52 · 378 阅读 · 0 评论