Java
文章平均质量分 63
yaoshengting
这个作者很懒,什么都没留下…
展开
-
java8Stream流处理中map和flatMap的区别
案例:对给定单词列表 ["Hello","World"],你想返回列表["H","e","l","o","W","r","d"]使用map方式@Test public void jdk8StreamMap() { List<String> words = new ArrayList<String>(); words.add("hello"); words.add("word"); //转载 2021-07-13 16:33:33 · 660 阅读 · 1 评论 -
java -jar 参数前后位置说明
springboot项目启动的时候可以直接使用java -jar xxx.jar这样。下面说说参数1.-DpropName=propValue的形式携带,要放在-jar参数前面 eg:java -DprocessType=1 -jar xxx.jar 取值:System.getProperty("processType")2.参数直接跟在命令后面 eg:java -jar xxx.jar processType=1 processType2=2 取值:参转载 2021-04-28 19:53:35 · 670 阅读 · 0 评论 -
Spring实战——远程服务同步调用技术RMI、Hessian、Burlap、HttpInvoker、WebService
有多种可以使用的远程调用技术,包括:远程方法调用(Remote Method Invocation,RMI) Caucho的Hessian和Burlap Spring基于HTTP的远程服务 使用JAX-RPC和JAX-WS的Web Service注:关于JAX-RPC和JAX-WS的历史,可以参考...原创 2021-01-22 15:45:10 · 261 阅读 · 0 评论 -
java.lang之 Class
public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement参数类型T- 由此类对象建模的类的类型。例如,String.class的类型是Class<String>。如果正在建模的类是未知的,请使用Class<?>。类Class的实例表示正在运行的Java应用程序中的类和接口。 枚举是一种...原创 2020-12-19 16:40:32 · 383 阅读 · 1 评论 -
java.lang之ClassLoader
public abstract class ClassLoader extends Object类加载器是负责加载类的对象。ClassLoader类是一个抽象类。给定一个类的binary name,类加载器应该尝试定位或生成构成类的定义的数据。典型的策略是将名称转换为文件名,然后从文件系统中读取该名称的“类文件”。每个类对象包含reference来定义它的ClassLoader。类数组类的对象不是由类加载器创建的,而是按照Java运行时的要求自动创建的。Class.getClassL...原创 2020-12-28 14:37:38 · 798 阅读 · 0 评论 -
String.getBytes()方法的编码格式
/** * Encodes this {@code String} into a sequence of bytes using the * platform's default charset, storing the result into a new byte array. * 使用平台的默认charset,将该String编码为一个字节数组 * * @return The resultant byte array * ...原创 2020-12-04 16:19:10 · 1206 阅读 · 0 评论 -
通过一个诡异的问题深看字符集编码及HttpClient发送Post请求时StringEntity的编码
StringEntity类的构造方法有两个参数,一个是String类型的具体的要传输的内容,另一个是ContentType(有三个多态形式charset,Charset,ContentType)如果在构造方法里不显示指定ContentType,那么默认的ContentType是ContentType TEXT_PLAIN = create("text/plain", Consts.ISO_8859_1);即mimeType是text/plan,charset是“ISO-8859-1”p原创 2020-12-03 20:54:21 · 2189 阅读 · 0 评论 -
java.lang.reflect反射之接口 AnnotatedElement
java.lang.reflect接口 AnnotatedElement所有已知实现类:AccessibleObject,Class,Constructor,Field,Method,Package原创 2020-10-25 16:17:34 · 512 阅读 · 0 评论 -
java的synchronized锁实现与Monitor(管程)机制
在《操作系统同步原语》 这篇文章中,介绍了操作系统在面对 进程/线程 间同步的时候,所支持的一些同步原语,其中 semaphore 信号量 和 mutex 互斥量是最重要的同步原语。 在使用基本的 mutex 进行并发控制时,需要程序员非常小心地控制 mutex 的 down 和 up 操作,否则很容易引起死锁等问题。为了更容易地编写出正确的并发程序,所以在 mutex 和 semaphore 的基础上,提出了更高层次的同步原语 monitor,管程就可以对开发者屏蔽掉这些手...原创 2020-06-28 17:56:10 · 1473 阅读 · 0 评论 -
commons-beanutils包介绍
BeanUtils类BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作。BeanUtils主要提供了对于JavaBean进行各种操作,比如对象,属性复制等等。BeanUtils设置属性值的时候,如果属性是基本数据类型,那么BeanUtils会自动帮我们进行数据类型的转换,并且BeanUtils设置属性的时候也是依赖于底层的getter和s...原创 2019-12-23 16:42:59 · 1300 阅读 · 0 评论 -
JARENTRY
从JAR文件中读取文件 原文来源: http://developer.java.sun.com/developer/JDCTechTips/2003/tt0122.html#1 译文地址: http://www.ydtx.com/cgi-bin/forum/topic.cgi?forum=27&topic=8 =======================转载 2016-02-22 13:33:06 · 1160 阅读 · 0 评论 -
Thinking In Java 之 How a garbage collector works
How a garbage collector works 我之所以想到速度,部分原因是由于C++模型。C++将自己的主要精力放在编译期间“静态”发生的所有事情上,所以程序的运行期版本非常短小和快速。C++也直接建立在C模型的基础上(主要为了向后兼容),但有时仅仅由于它在C中能按特定的方式工作,所以也是C++中最方便的一种方法。最重要的一种情况是C和C++对内存的管理方式,它是某些人觉得Java翻译 2016-03-06 21:30:04 · 709 阅读 · 0 评论 -
Java垃圾回收机制
以前没有写博客的习惯,学过的东西又不能一直都记着,所以用到“方现查”,每次都要看很多东西,才能把某一方面的东西看全。对于Java垃圾回收机制,这个很久前就学过,并且理解过了,好长时间不用,就丢到回爪洼岛了,这里还是记下,方便以后再次查看,不用浪费太多时间。了解Java垃圾回收机制,就要知道Java各个版本的区别,尤其是随着JDK版本的提升,都比较以前版本有哪些改进。最近,尤其是JD转载 2016-03-06 21:20:44 · 415 阅读 · 0 评论 -
运用URLClassLoader加载外部jar包的java类,生成Class文件
先来一段网上copy的话术: //****************************很多时候 我们写的java程序是分模块的,有很好的扩展机制,即我们可以为我们自己的java类添加插件,来运行将来某天我们可能开发出来的类,以下称这些类为插件类。下边是一种简单的实现方法:Class A 作为程序的主入口,其中包含了程序的执行入口(main)函数。然后在转载 2016-02-19 16:22:06 · 3048 阅读 · 0 评论 -
collection.toArray(new String[0])中new String[0]的作用
new string[0]的作用比如:String[] result = set.toArray(new String[0]);Collection的公有方法中,toArray()是比较重要的一个。但是使用无参数的toArray()有一个缺点,就是转换后的数组类型是Object[]。 虽然Object数组也不是不能用,但当你真的想用一个具体类型的数组,比如String[]时,问转载 2016-02-19 14:35:16 · 11016 阅读 · 1 评论 -
URLClassLoader使用方法及事例程序
首先了解下java几个加载器的基本原理: Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由 Java 应用开发人员编写的。系统提供的类加载器主要有下面三个: 引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。转载 2016-02-19 14:12:26 · 517 阅读 · 0 评论 -
深入理解Java中为什么内部类可以访问外部类的成员
文章转载:http://blog.csdn.net/zhangjg_blog/article/details/20000769内部类简介虽然Java是一门相对比较简单的编程语言,但是对于初学者, 还是有很多东西感觉云里雾里, 理解的不是很清晰。内部类就是一个经常让初学者感到迷惑的特性。 即使现在我自认为Java学的不错了, 但是依然不是很清楚。其中一个疑惑就是为什么内部转载 2015-08-18 09:01:24 · 486 阅读 · 0 评论 -
Unsupported major.minor version 51.0问题及解决方法
jdk1.6工程中使用外部jar包中类出现:Unsupported major.minor version 51.0 问题原因:外部jar包使用jdk1.7(jdk7)编译,而使用此jar包的工程jdk版本为jdk1.6(jdk6),算是版本不支持。 解决方法:将此jar包重新用jdk1.6(jdk6)编译级别编译。 PS:jdk1.7下switch转载 2016-03-04 09:56:53 · 2148 阅读 · 0 评论 -
Java多态中重载方法参数分别为父类和子类时的疑惑
问题:代码如下: class A { public String show(D obj){ return ("A and D"); } public String show(A obj){ return ("A and A"); } } class B extends A{转载 2016-03-15 21:33:46 · 4051 阅读 · 0 评论 -
Initialization-on-demand holder idiom
In software engineering, the Initialization on Demand Holder (design pattern) idiom is a lazy-loaded singleton. In all versions of Java, the idiom enables a safe, highly concurrent lazy initializa翻译 2016-03-03 10:57:04 · 757 阅读 · 0 评论 -
JAVA并发编程——守护线程(Daemon Thread)
在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。用户转载 2016-02-02 14:44:03 · 612 阅读 · 0 评论 -
一张图读懂Java多线程
线程运行过程中抛出异常,或者线程实在运行完了,那么线程就结束了,也就是消亡期。运行完了是不可以继续start的,必须从新new 一个线程才能start。那么将是有一个生命周期。AD:51CTO网+ 首届中国APP创新评选大赛火热招募中……1、带着疑问看图1)竞争对象的锁和竞争CPU资源以及竞争被唤醒2)何种情况下获取到了锁,何种情况下会释放锁转载 2016-02-25 13:25:43 · 481 阅读 · 0 评论 -
Java 5 特性 Instrumentation 实践
目录[-]简介Greeting 代理Timing 代理Instrumentation APIClassFileTransformer简介不使用instrumentation 来测量函数运行时间的传统方法是:在函数调用之前记录当前系统时间,在函数调用完成之后再次记录当前系统时间(为了简化描述,本文不考虑虚拟机进程映射到本地操作系统进程时造成的计时误转载 2016-02-25 13:48:52 · 797 阅读 · 0 评论 -
一道java多线程题
<br />最近看到一道面试题,比较有意思:<br /><br />有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC…<br />由于线程执行的不确定性,要保证这样有序的输出,必须控制好多线程的同步。<br /><br /><br />线程同步有两种基本方法:<br />(1) synchronized<br />(2) wait,notify,notifyAll<br />现在分别采用这两种方法来解答这道题目。<br />/**<br />* @author转载 2010-11-13 19:34:00 · 513 阅读 · 0 评论 -
JAVA泛型通配符PECS原则Producer Extends Consumer Super
在JAVA的泛型集合中,默认都可以添加null,除此以外,还有以下三条规则。1. “?”不能添加元素以“?”声明的集合,不能往此集合中添加元素,所以它只能作为生产者(亦即它只能被迭代),如下:List<?> names = Lists.newArrayList("yiifaa");// 通配符声明的集合,获取的元素都是Object类型List<Object&g...原创 2019-01-28 14:27:28 · 1048 阅读 · 1 评论 -
注解(Annotation)--注解处理器
转载自https://www.cnblogs.com/peida/archive/2013/04/26/3038503.html如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.Ann...转载 2019-02-02 13:04:08 · 556 阅读 · 0 评论 -
注解(Annotation)自定义注解入门
转载自https://www.cnblogs.com/peida/archive/2013/04/24/3036689.html要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被...转载 2019-02-02 13:00:24 · 194 阅读 · 0 评论 -
注解(Annotation)基本概念
转载自https://www.cnblogs.com/peida/archive/2013/04/23/3036035.html什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通...转载 2019-02-02 12:54:00 · 261 阅读 · 0 评论 -
Guava学习笔记:Guava新增集合类型-Bimap
参考https://www.iteblog.com/archives/704.html转载自https://www.cnblogs.com/peida/p/Guava_Bimap.htmlBiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。 通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果出现下面一种场景的情况,我们就...转载 2019-02-02 11:47:14 · 179 阅读 · 0 评论 -
Java泛型解惑之 extends T>和 super T>上下界限
<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。<? extends T>:是指 “上界通配符(Upper Bounds Wildcards)” <? super T>:是指 “下界通配符(Lower Bounds Wildcards)”一、为什么要用通配符...原创 2019-01-28 11:45:32 · 20220 阅读 · 11 评论 -
一文读懂 Java 异常处理
转载自https://mp.weixin.qq.com/s/F6StjDgzfRE5zuhBz9uOFAJAVA 异常类型结构Throwable是所有异常类型的基类,Throwable下一层分为两个分支,Error和Exception。1、Error 和 Exeption1)ErrorError 描述了 JAVA 程序运行时系统的内部错误,通常比较严重,除了通知用...转载 2019-01-28 10:27:12 · 788 阅读 · 1 评论 -
flying-saucer + iText + Freemarker实现pdf的导出, 支持中文、css以及图片
转载自https://www.cnblogs.com/youzhibing/p/7692366.html转成pdf时遇到的常见问题转载 2019-01-08 13:58:31 · 1387 阅读 · 0 评论 -
Java对象的序列化和反序列化
对象序列化与反序列化local class incompatibleJava对象的序列化和反序列化无论eclipse还是idea(默认关闭序列化提示,需手动打开),都可以自动生成相应的序列号,分为两类1L,XXXL。当然如果不指定,系统也会自动生成,但是存在隐性风险 ,不同的编译器对同一个对象可能生成相同的序列号,也可能生成不同的序列号java serialVersionUID在运...转载 2019-01-07 17:29:16 · 329 阅读 · 0 评论 -
Java中关于 BigDecimal 的double入参的构造函数导致的数据似乎损失精度的bug
背景 在博客 恶心的0.5四舍五入问题 一文中看到一个关于 0.5 不能正确的四舍五入的问题。主要说的是 double 转换到 BigDecimal 后,进行四舍五入得不到正确的结果:public class BigDecimalTest { public static void main(String[] args){ double d = 3转载 2016-08-19 17:06:37 · 2537 阅读 · 1 评论 -
MANIFEST.MF的用途(转载)
可以用的上的有: 1. Main-Class 指定程序的入口,这样可以直接用java -jar xxx.jar来运行程序。 2. Class-Path 指定jar包的依赖关系,class loader会依据这个路径来搜索class。我平时用mf文件一般说来都是让jar成为可以直接运行这一目的。虽然目的这么简单,但是每次打包还是很容易出现各种各样的问题让人头痛。m转载 2016-01-25 16:25:52 · 547 阅读 · 0 评论 -
java.lang.instrument 学习(一)
转自:http://jiangbo.me/blog/2012/02/21/java-lang-instrument/Instrumentation介绍:java Instrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序。这种监测和协助包括但不限于获取JVM运行时状态,替换和修改类定义等。 Java SE5中使用JVM转载 2016-01-25 14:47:02 · 695 阅读 · 0 评论 -
如何设计与优化高性能的HTTP接口型应用?
【一个故障引发的话题】最近,项目中的短信模块收到一个故障日志,要求我协助调查一下:2010-05-07 09:22:07,221 [?:?] INFO httpclient.HttpMethodDirector - Retrying request:org.apache.commons.httpclient.HttpMethodDirector.executeWithRetr转载 2015-10-13 16:40:18 · 2256 阅读 · 0 评论 -
连接oracle数据库及遇到的问题2
<br />关于数据库的连接还有一种方式,就是把driver,url,user,password这些值写到一个文件里面,以实现值和文件的分离,具体步骤如下<br />1.在工程下面创建一个包,在该包下创建一个txt文件,如property.txt<br />2.在程序中声明一个peoperties对象<br /> Properties p = new Properties();<br />完整的代码如下<br />package neu.com;<br />import java.io.FileInputS原创 2011-02-22 18:45:00 · 566 阅读 · 0 评论 -
关于Java栈与堆的思考
<br />这篇转来的文章有不少地方是值得商榷的,但是如果它能帮助您理解一些问题,不妨一看...<br /> <br />1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。<br />2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Jav转载 2011-02-22 18:11:00 · 355 阅读 · 0 评论 -
Java核心API需要掌握的程度
<br />Java的核心API是非常庞大的,这给开发者来说带来了很大的方便。其中的一些内容是必须掌握的。<br />1、java.lang包下的80%以上的类的功能的灵活运用。<br />2、java.util包下的80%以上的类的灵活运用,特别是集合类体系、正规表达式、时间、属性、和Timer.<br />3、java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。<br />4、java.math包下的100%的内容。<br />5、java.ne转载 2011-02-22 17:59:00 · 471 阅读 · 0 评论