Java基础
文章平均质量分 57
换了马甲的小强
爆发自己的小宇宙吧!
展开
-
Java8 Stream流使用
一、简述Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API借助同样新出现的(Lambda表达式、方法引用、接口默认方法等),极大的提高编程效率和程序可读性,同时它提供串行和并行两种模式进行...原创 2020-02-15 21:46:35 · 268 阅读 · 0 评论 -
The POM for com.alibaba:druid:jar:1.1.10 is invalid
今天在家里电脑上编译一个网上下载下来的包的时候,控制台报出了这个错误:[WARNING] The POM for com.alibaba:druid:jar:1.1.10 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details开始一直以...原创 2019-10-24 23:18:16 · 16437 阅读 · 0 评论 -
《Java8 实战》读后笔记
在阅读Spring5的源码的时候发现不少Java8的新语法不是很了解,故转而学习Java8的基础语法,就是本书《Java8 实战》, 目录结构如下: 一、基础知识 1 . 通过行为参数化传递代码 a) Java8之前主要体现在策略模式(java.io.FilenameFilter)上,以前的时候我们通常需要传递一个匿名对象或者实例化具体类才能达到;public interfa...原创 2018-08-01 18:06:54 · 1153 阅读 · 0 评论 -
Spring BeanWrapper 和Java BeanInfo实现对实体Getter和Setter操作
Spring BeanWrapper BeanWrapper是对Bean的包装,其接口中所定义的功能很简单包括设置获取被包装的对象,获取被包装bean的属性描述器,由于BeanWrapper接口是PropertyAccessor的子接口,因此其也可以设置以及访问被包装对象的属性值。BeanWrapper大部分情况下是在spring ioc内部进行使用,通过BeanWrapper,spr...原创 2018-08-04 23:52:32 · 1172 阅读 · 0 评论 -
Spring配置中的"classpath:"与"classpath*:"的区别研究(转)
概念解释及使用场景:classpath是指WEB-INF文件夹下的classes目录。通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下:<!--系统自动加载文件--><!--这里使用的是classpath*:的形式--><context-param> <param-name>con...转载 2018-08-04 16:19:47 · 108 阅读 · 0 评论 -
Java Tomcat基础版数据连接池实现(仅供参考)
最新在阅读公司自己写的数据连接池(比较简单的),参考其仿照写了一个数据库连接池,由于过于简单,取名SimpleDataSourceFactory,在tomcat上使用的时候需如下配置:&amp;lt;GlobalNamingResources&amp;gt;&amp;lt;Resource name=&quot;jdbc/ctpDataSource&quot; auth=&quot;Container&am原创 2018-08-03 19:42:04 · 582 阅读 · 0 评论 -
利用Spring扫描class文件
Set<String> sets = new HashSet<>();String basePackage = "com.springframework";String searchPaths = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourc...原创 2018-07-13 13:51:00 · 1135 阅读 · 1 评论 -
Java中Timer和TimerTask使用
Java提供了轻量级的定时任务实现Timer,通过Timer我们可以实现定时执行任务,定时循环执行任务的功能,我们先看JavaDoc中关于Timer的说明 一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。 与每个 Timer 对象相对应的是单个后台线程,用于顺序地执行所有计时器任务。计时器任务应该迅速完成。如果完成某个计时器任务的时间太长...原创 2018-05-29 22:33:13 · 4281 阅读 · 0 评论 -
【Tomcat学习】getCanonicalFile与getAbsoluteFile区别
进入Bootstrap类,我们看第一个static{}块,里面有一段代码写法让我有些奇怪,如下:if (bootstrapJar.exists()) { File f = new File(userDir, ".."); try { homeFile = f.getCanonicalFile(); } catch (IOException i...原创 2018-05-24 23:32:14 · 11989 阅读 · 0 评论 -
Spring基础系列——AOP术语(转)
AOP是Aspect Oriented Programing的简称,被译为“面向切面编程”。AOP独辟蹊径通过横向抽取机制为这类无法通过纵向继承体系进行抽象的重复性代码提供了解决方法。如何将这些独立的逻辑融合到业务逻辑中完成和原来一样的业务操作,这才是AOP的关键。AOP的术语如下:1:连接点(Joinpoint)程序执行的某个特定位置:如类开始初始化前,类初始化后,类某个方法...转载 2018-08-07 12:33:31 · 167 阅读 · 0 评论 -
Spring中使用StopWatch监控代码运行时间及性能比较
在日常Java语言开发时,有时候需要监控方法中代码块的运行时长,从而确定性能点在哪,以及针对性的如何优化。利用springframework框架的工具类StopWatch可以快速方便的查看到每段代码运行的时间,准确确定性能瓶颈所在。示例代码StopWatch stopWatch = new StopWatch();stopWatch.start("a");ApplicationCo...原创 2018-08-08 00:09:34 · 2372 阅读 · 0 评论 -
Spring Objenesis不使用构造函数实例化对象
objenesis是一个小型java类库用来实例化一个特定class的对象。使用objenesis实例化对象static class City { private String code; public City(String code) { super(); this.code = code; }}@Testpublic v...原创 2018-08-08 15:17:17 · 1229 阅读 · 1 评论 -
Spring中PropertyPathFactoryBean和MethodInvokingFactoryBean使用
1. 引用其他Bean的属性值 PropertyPathFactoryBean &amp; FieldRetrievingFactoryBean可以用来获得目标Bean的属性值(实际上就是调用getter方法返回的值),获得的值可以注入给其他的Bean,配置如下:&lt;bean id="person2" class="com.springframework.chapter35.Pers...原创 2018-08-08 21:35:25 · 482 阅读 · 0 评论 -
【SpringMvc】如何使用form发送PUT和DELETE请求
一、当前现状浏览器使用form提交信息的时候只支持GET和POST,如果需要在浏览器上使用PUT和DELETE请求方式的话,只能使用欺骗的方式了,SpringMvc提供了HiddenHttpMethodFilter类来提供支持,请看代码:public class HiddenHttpMethodFilter extends OncePerRequestFilter { /** D...原创 2018-08-29 22:52:04 · 8490 阅读 · 0 评论 -
【SpringMVC学习】启用异步时报 Async support must be enabled on a servlet and for all filters involved in async
Spring MVC has an extensive integration with Servlet 3.0 asynchronous request processing:DeferredResult and Callable return values in controller method provide basic support for a single asynchrono...原创 2018-09-06 00:31:55 · 6127 阅读 · 0 评论 -
Pitfalls of sharing a connection among threads
Here is a review of the potential pitfalls of sharing a single Connection among multiple threads.Committing or rolling back a transaction closes all open ResultSet objects and currently executing S...翻译 2018-09-20 10:11:51 · 171 阅读 · 0 评论 -
【Tomcat学习】如何调整多个项目的顺序
背景最近在做一个系统的集成的时候碰到Webapp下只放集成项目启动就没问题,然而把集成项目放到公司产品的Tomcat的webapp下就报Class无法加载等问题.后面跟踪发现是由于【公司系统】大量使用System.setProperty将本应该是【公司系统】webapp的数据写到了全局中了,巧合的是【第三方应用】启动的时候又在【公司系统】webapp之后,所以问题就出现了。解决办法由于两...原创 2019-03-07 14:48:44 · 1198 阅读 · 0 评论 -
Java 覆写equals使用instanceof的陷阱
public static void main(String[] args) { Emp e1 = new Emp("chenssy", "23"); Emp e2 = new Emp("chenssy", "24"); Person p = new Person(); p.name = "chenssy"; Sy...原创 2019-08-05 20:47:22 · 246 阅读 · 0 评论 -
【Tomcat学习】Eclipse导入Tomcat8.5源码
一、进入tomcat85的github地址,fork一份到自己的账户. 二、使用git创建一个Repository(PS:我创建的名字为git),进入git文件,使用gitbash下载代码 git clone https://github.com/LitterRoach/tomcat85.git三、tomcat85使用的是ant打包编译,请自行安装ant;四、tomcat8...原创 2018-05-22 22:12:11 · 1253 阅读 · 0 评论 -
【Tomcat学习】如何查看Tomcat版本号?
进入Tomcat/bin目录下,Shift + 右键->在此处打开命令提示框,打开命令提示符窗口,输入命令version.bat,就可以看到如下结果 D:\apache-tomcat-8.5.31\bin>version.bat Using CATALINA_BASE: “D:\apache-tomcat-8.5.31” Using C...原创 2018-05-21 15:41:26 · 17881 阅读 · 1 评论 -
Java中foreach使用过多会有性能问题?
最近跟foreach算是很有缘分吧,前一天同事跟我聊一个自己在网上看到的“foreach使用过多会有性能问题,建议使用for i++来做遍历?”我当时一听就纳闷了,以前的时候看到文章说JVM对foreach语法糖是有做优化的,在很多博客也是推荐使用foreach的,为什么突然会有这么个说法呢,今天躺床上看到个博客Java 性能优化的五大技巧的第五点钟第2条中说“避免使用iterator()”,我决定原创 2016-12-11 12:44:08 · 5799 阅读 · 0 评论 -
Java多线程中join方法的理解(对Thread.join讲解的很详细)
转载自:http://uule.iteye.com/blog/1101994 thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join(); //使调用线程 t 在此之前执行完毕。t.join(1000); //等待转载 2016-06-27 14:21:32 · 462 阅读 · 0 评论 -
eclipse svn插件展示作者、修改日期等label
转载自:http://m.myexception.cn/cvs-svn/2043164.htmleclipse svn插件显示作者、修改日期等label在另一台电脑里安装了SVN插件后,发现项目文件后面只有版本号,没有作者名字了,找了很久才找到了,现记录在这里。window->preferences->team->svn->label decorations->text转载 2016-07-27 20:36:14 · 799 阅读 · 0 评论 -
理解Java对象序列化
好文:http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html有些点还是不太懂,后期再看一遍原创 2016-01-29 11:23:03 · 280 阅读 · 0 评论 -
对象序列化为何要定义serialVersionUID的来龙去脉
在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到内存,等要用了,再还原到对象中,说白了,就是能将一个2进制文件变成内存中的对象。在JAVA中,要实现这种机制,只要实现Serializ转载 2015-12-25 23:36:39 · 344 阅读 · 0 评论 -
Java中enum的静态成员的初始化
Java中enum的静态成员的初始化博客分类: JavaJavaCC++C#SUN Java语言规范第三版8.9规定了enum里的构造器、初始化器和初始化块中不得引用该enum中非编译时常量的静态成员域。 引用It is a compile-time error to reference a static field of an enum type转载 2015-11-17 20:46:32 · 744 阅读 · 0 评论 -
Cygwin使用之神器apt-cyg安装与使用
在安装完cygwin后如果还想安装点其他软件,那该如何安装呢?我也曾经傻不拉几的的使用cygwin安装器重新安装,只是为了能在里面讲需要的软件安装进来,我只想说这样的方法的确OUT了!建议使用apt-cyg这个工具来安装需要的软件,操作起来So easy(网上很多相关的博客不是最新的,那样是无法安装成功的)!一、安装步骤:1. 安装apt-cyg:lynx -source rawg原创 2015-10-12 00:56:44 · 2886 阅读 · 0 评论 -
MessageFormat vs String plus性能对比
今天看到本组模块的中看到了下面这样的代码,其实我蛮好奇的,为什么要使用MessageFormat这么生涩的写法,直接使用String plus不是更简单,更明了么?MessageFormat.format("{0} {1}",DateUtil.getDate(DateUtil.YEAR_MONTH_DAY_PATTERN),ResourceUtil.getString("attendance.com原创 2016-12-29 10:54:46 · 5007 阅读 · 4 评论 -
Javacore学习笔记-XML读取(DOM, SAX, StAx与JAXB)
1. 使用InputSouce解决乱码问题,代码如下: /** * SAX很好的例子: */ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); List<Book> book原创 2016-10-11 22:44:30 · 1121 阅读 · 0 评论 -
Eclipse Maven项目配置Javap
一、配置步骤: 1. 进入External Tool Cofigurations配置: 2. 配置输入内容如下: Name : javap Location: D:\Program Files (x86)\jdk1.8.0_111\bin\javap.exe Working Directory: ${workspace_loc}/${project_name} ...原创 2018-05-05 19:26:10 · 208 阅读 · 0 评论 -
Java中try、catch、finally语句块的执行顺序
一、我们将try{}catch(){}finally{}分成以下几种情况分别验证:场景1:try{return;}catch{}finally{} return; public static int returnSttat(int i) { System.out.println("return block"); return i; } ...原创 2018-05-03 21:12:03 · 8395 阅读 · 2 评论 -
Guava事件总线——全文检索
一、介绍 Guava事件总线实际上是一个“观察者-监听者”实现,通过使用弱引用的方式将各个模块关联起来,下面这几个帖子将EventBus讲解的非常详细,如不是很了解,请移步:Java事件总线Guava - EventBus(事件总线)EventBus 类解析通过EventBus我们可以解决模块间相互耦合,相互依赖,从而达到低耦合便于维护的目的。 二、案例分析——全文检索 ...原创 2018-03-22 13:44:29 · 345 阅读 · 0 评论 -
Google Guava学习笔记
一、Preconditions使用,里面牵扯到一个问题,是直接抛出异常还是对字段做校验呢,回复中的一段关于适用unchecked Exception还是checked Exception写的非常好,如下: Preconditions的异常类型问题 牵扯到设计准则,后面的章节‘Throwables’也提到了一点。一般准则认为,违反方法契约(包括方法所使用的对象或外部数据状态)时抛出Unche...原创 2018-01-28 00:30:23 · 414 阅读 · 0 评论 -
JSONPath小试
最近在某论坛看到一个关于JSONPath的例子,讲这个东西乃对JSON处理的神器,今日碰到周五,就来试试几把。一、JSON字符串{ "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century",原创 2017-11-03 15:20:28 · 999 阅读 · 0 评论 -
JavaWeb HttpServletRequest&HttpServletResponse小记
一、如何通过request获取访问的URL?request.getRequestURL()二、如何通过request获取完整的参数?request.getQueryString()原创 2017-01-10 14:05:17 · 227 阅读 · 0 评论 -
Java Lambda表达式入门
原文链接: http://blog.csdn.net/renfufei/article/details/24600507/下载示例程序 Examples.zip 。原文日期: 2014年4月16日翻译日期: 2014年4月27日翻译人员: 铁锚简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用转载 2017-01-13 18:12:53 · 264 阅读 · 0 评论 -
Eclipse 进行远程调试Windows Tomcat配置
以前看到别人使用调试远程代码感觉好牛逼的样子,前一段时间想学来着,但是由于实际工作中暂时没有用上最终没学会,好悲伤!今天终于需要用了,Google+Baidu了一堆,终于将Windows Tomcat远程调试给学会了,不吹牛逼了,进入正题。1. 配置windows tomcat服务器端: rem*******设置Tomcat目录*******--set CATALINE_HOME=E:\原创 2015-10-09 23:18:38 · 1682 阅读 · 0 评论