自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Java中Synchronized与ReentrantLock的不同以及ReentrantLock的使用

首先,ReentrantLock是在Java1.5中被加入的,所以在之前的Java版本中是不存在 ReentrantLock的。ReentrantLock是Java并发包中非常有用的一个类,比如在ConcurrentHashMap中就用到了ReentrantLock。ReentrantLock类有两个重要的特征,其中一个是当我们尝试获取锁时,我们能够中断这个获取锁的行为;另一个是我们能够指定一个获取

2017-06-10 22:45:20 1007

原创 Java-Object类源码解析

一,Object类简述Object类是Java中所有类的基类,在编译时会自动导入,位于java.lang包中,而Object中具有的属性和行为,是Java语言设计背后的思维体现。这里写的代码是JDK8中的,其他版本的JDK可能略有不同。 包含的方法如下图: Object类方法说明Object类中的大部分方法都是native方法,用此关键字修饰的方法是Java中的本地方法,一般是用C/C++语言来

2017-06-02 13:58:18 6614 2

原创 枚举和注解

30:用enum代替int常量

2017-07-23 15:44:03 381

原创 泛型

本篇文章主要是总结一下自己在看Effective Java第二版第五章泛型做的笔记。第23条:请不要在新代码中使用原生态类型这条建议是告诉我们在写java代码的过程中不要漏写类型参数,而只写原生态类型。原生态类型是不带任何实际类型参数的泛型名称,例如List<E> 的原生态类型是List。如果我们只使用原生态类型,那么我们就失去了安全性和表述性方面的所有优势。安全性是指泛型能够自动帮助我们进行类型的

2017-07-22 23:27:16 349

原创 mybatis批量插入clob,ORA-01461-仅能绑定要插入LONG列的LONG值

今天用MyBatis批量插入数据到Oracle中,其中有字段的类型为Clob,出现错误:ORA-01461:仅能绑定要插入LONG列的LONG值 Xml中SQL语句如下: <insert id="batchInsert" parameterType="java.util.List"> insert into tableName (ID, LAST_MODIFIED, content)

2017-06-26 22:11:01 6286 5

原创 Java中关于final修饰符的几个知识点

final修饰符在java中经常使用,今天我就将使用final修饰符的点记录一下,一来给自己总结,二来也帮助需要的人final首先是java中的一个关键字,能够修饰变量,方法以及类当用final修饰一个类时,那么这个类是不能被继承的。这能够保护你的类,而且通常是由于安全原因而使用final修饰类。在java中,String类以及包装器类都是用final进行修饰的。当final用在方法前,那么此

2017-06-07 19:33:51 1213

原创 rails的常用命令

rails的常用命令:(rails version:4.2.0) 1.新建rails项目,rails new 项目名 –skip-bundle(这个是为了略过bundle依赖检查) 2.新建控制器和模型:rails generate(g)model 模型名(单数) 字段:属性。。。 rails generate(g)controller 控制器名(与模型名相同) 3.数据迁移:bin/rak

2017-06-04 19:38:36 2157

原创 linux目录结构及常用命令

linux操作系统的文件一.linux系统下除了一般文件外,所有的目录和设备(光驱,硬盘等)都是以文件的形式存在了。所以这里就出现了一个问题,我们怎样才能使用物理设备中的数据呢,linux系统是将物理设备挂载(linux中一个非常重要的概念,这里是我自己的感悟,大家可以看看google上面如何说的)到不同的目录下实现,这样在我们访问数据时,是通过目录下的挂载点进行访问的。这和window系

2017-06-04 19:34:04 443

翻译 Java8-如何将List转变为逗号分隔的字符串

Converting a List to a String with all the values of the List comma separated in Java 8 is really straightforward. Let’s have a look how to do that. 在Java 8中将集合List转变为用逗号分隔的String是非常简单的,下面让我看看如何做到In

2017-06-04 19:30:24 213269 2

翻译 The Log: What every software engineer should know about real-time data's unifying abstraction

kafka 下面这篇文章主要是翻译自上面的链接,是kafka作者写的一篇关于kafka应用以及设计的介绍The Log: What every software engineer should know about real-time data’s unifying abstraction 日志:每个软件工程师都应该知道关于实时数据的统一抽象的内容

2017-06-04 19:26:57 2027

原创 java-web工程启动以及web.xml文件分析

现在做的工作主要是java web开发方向的工作,所以今天就主要说明一下java web工程的启动顺序,以及在web.xml常用标签的作用。项目目录 首先,本项目是activemq和spring结合使用的一个demo例子,但是我今天针对这个例子主要说一说web工程的启动顺序;其次,本项目使用maven构建的,但是web工程启动的顺序还是跟不使用maven一样的。web.xml在java-web工程

2017-05-29 20:46:21 793

转载 Java中几种常量池的区分

转载来源Java中几种常量池的区分在java的内存分配中,经常听到很多关于常量池的描述,我开始看的时候也是看的很模糊,网上五花八门的说法简直太多了,最后查阅各种资料,终于算是差不多理清了,很多网上说法都有问题,笔者尝试着来区分一下这几个概念。1.全局字符串池(string pool也有叫做string literal pool)全局字符串池里的内容是在类加载完成,经过验证,准备阶段之后在堆中生成字

2017-05-03 15:51:52 1224

原创 这些年看过的技术书

将自己这些年看过的有关技术的书籍做个记录。1.《Java编程思想》 这本书算是Java入门书籍吧,看了好几遍,每一遍都有不一样的收获。但是这本书有一个缺点就是里面的Java程序例子写的有些太长了,导致看起来有点费力。2.《深入理解Java虚拟机》 这是周志明写的一本书,我看的是第二版。里面对于Java虚拟机的讲解很透彻,看完此书对于JVM会有很深入的理解。建议多读,细读。3. 《深入分析Java

2017-05-02 13:35:10 438

原创 redis应用

一直听说缓存数据库能够给我们带来很大的方便,但是一直没有机会在实际项目中进行使用,刚好前段时间项目当中有个需求,使用redis能够很好地得到解决,所以就拿redis进行了一下成功的尝试,也印证了学以致用这句名言了,哈哈。问题描述在我们的项目中有一个问题就是要显示最新我们抓取的网页信息,前台显示包括网页标题跟网址。考虑到前台获取数据较为频繁,并且前台获取数据需要根据时间进行倒序排列,这样子对数据库压力

2017-05-01 12:15:03 310

原创 Java中forName和loadClass的区别

问题描述在JDBC编程中,经常会看到Class.forName(“com.mysql.jdbc.Driver”),加载数据库驱动类,当时在java中还有一种加载类的方法即getClass.getClassLoader().loadClass(“com.mysql.jdbc.Driver”),但是当我使用此方法加载数据库驱动类时,发现无法成功加载。因此觉得这两个方法应该是有些区别的。这里就比较一下二者

2017-04-30 22:12:06 688

原创 Spring何时初始化bean

今天在看《spring源码深度解析》第五章关于bean加载的部分,跟踪源码的过程中产生一个困惑。就是在我的代码中调用getBean以前,在加载xml配置文件的时候对应的bean就已经进行了初始化。 代码如下: Main.javapublic class Main { public static void main(String[] args) { ApplicationC

2017-04-27 11:38:35 6033

原创 Class.getResource和ClassLoader.getResource的区别分析及用法

用JAVA的File类,如要取得c:/test.txt文件,就会这样用File file = new File(“c:/test.txt”);这样用有什么问题,相信大家都知道,就是路径硬编码,对于JAVA精神来说,应用应该一次成型,到处可用,并且从现实应用来讲,最终生成的应用也会部署到Windows外的操作系统中,对于linux来说,在应用中用了c:/这样的字样,就是失败,所以,我们应该尽量避免使用

2017-04-12 22:49:24 684

原创 java-InputStream与OutputStream类型

1.InputStream类型InputStream的作用是用来表示那些从不同数据源产生输入的类 。包含的类型如下表所示: 类 功能 构造器参数 如何使用 ByteArrayInputStream 允许将内存的缓冲区当作InputStream使用 缓冲区,字节将从中取出 作为一种数据源:将其与FilterInputStream对象相连以提供有用接口 StringBu

2017-03-23 10:10:46 3246

原创 SSM(SpringMVC+Spring+Mybatis)框架搭建以及示例web

SSM说明SpringMVC:主要是进行表现层与控制层之间的数据传递,以及页面之间的跳转。Spring:利用Spring框架的IoC进行对象的注入,Spring容器管理这些对象。Mybatis:持久层,控制与数据库之间的操作,相对于hibernate上手简单。 用到的版本在pom.xml文件中会有说明框架搭建准备操作系统:window 7安装JDK8eclipse IDEMaven进行

2017-03-18 15:40:36 2377

原创 java-web工程无法加载mysql-connector驱动类java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

最近两天在自己学习如何配置java的ssm框架(Structs2,spring,mybatis)。 遇到tomcat无法加载mysql-connector驱动类,mysql版本用的5.6.10,jar包使用5.1.39. 系统老是java.lang.ClassNotFoundException: com.mysql.jdbc.Driver确认包已经被导入web工程目录。原来是tomcat找不到M

2017-03-15 10:01:40 7072 7

原创 uploadify取消文件上传

最近这两天项目中用到了uploadify(文件上传),在这里进行一个总结uploadifyuploadify是一个基于JQuery的文件上传插件,有免费版和收费版两个版本,其中免费版采用了flash,所以浏览器必须要安装flash插件.收费版使用HTML5.我这次使用的是免费版.下载地址uploadify使用如何使用uploadify进行文件上传,各位都能够在网上找到,但是需要注意版本号.我这里仅仅

2016-11-20 21:06:04 5544

原创 JVM内存分配与回收策略

对象的内存分配,基本上就是指在堆上分配,对象主要分配在新生代的Eden区。 堆一般分为新生代和老年代,新生代一般包括Eden,两个Survivor区,Eden:Survivor=8:1。如果启用了本地线程分配缓冲,将线程优先在TLAB上分配。少数情况也可能直接将对象分配在老年代中。这些分配细节取决于使用的垃圾收集器组合,还有虚拟机中与内存相关的参数设置接下来介绍的几条普遍的内存分配规则,针对S

2016-11-16 20:10:31 341

原创 HashMap源码详细解释

package NewCollections;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.AbstractMap;import java.util.Map;import java.util.Objec

2016-11-12 11:22:20 311

原创 javac常用参数

javacjavac是用来将java源代码编译为二进制字节码的编译程序,eclipse使用的编译也是javac,使用javac -help能看到所有的参数说明,下面将会介绍几个常用的参数-encoding用于指定java源文件所使用的字符编码。如下:javac -encoding UTF-8 Hello.java指定Hello.java文件的字符是用utf-8进行编码的。-source和-targe

2016-11-09 19:32:10 1309

原创 JPA和Spring-Data-JPA简介

什么是JPAJPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术 ORM:通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质就是将数据从一种形式转换到另外一种形式。结束现在Hiberna

2016-11-08 20:27:49 21239 2

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-11-08 19:29:08 220

原创 XML文档的xmlns、xmlns xsi和xsi schemaLocation

虽然经常看到xml文件中这些元素的使用,但是一直不太清楚这些元素的意思,今天就做一个总结 首先看一个Spring XML文件的样本<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/20

2016-10-27 20:28:20 615

原创 JVM运行时数据区域

Java虚拟机内存主要包括程序计数器,虚拟机栈,本地方法栈,方法区,堆,如下图 下面针对每个数据区存储的内容以及作用分别进行说明程序计数器这个是线程私有的区域,即每个线程都有自己的程序计数器。是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令(当然,实际的虚拟机会采取更加高效的方式去实现) 如果线程

2016-10-26 21:04:42 417 1

原创 ArrayList源码-jdk8

ArrayList概述

2016-10-25 20:59:56 312

原创 HashMap源码解析-jdk8

HashMap概述工作原理:HashMap的底层数据结构是数组加链表。通过hash(链地址法解决hash冲突)的方法,使用get和put获取和存储对象。存储对象时,将K/V传给put方法,put方法调用hashCode计算hash从而得到在bucket中的位置,若此位置没有元素,则直接放置在此位置,若有元素,则放置在链表的开头。同时,HashMap也会根据当前bucket的占用情况自动调整容量。获取

2016-10-23 16:32:36 375

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除