
Java学习笔记
文章平均质量分 51
涨姿势
这个作者很懒,什么都没留下…
展开
-
Java服务器利用JPush 向客户端发送消息
1首先需要在jpush 官网注册一个账号,然后添加我们开发的客户端程序进行管理,此时会生成Appkey 和Master secret 21、导入 SDK 开发包到你自己的应用程序项目解压缩 jpush-sdk_v1.x.y.zip 集成压缩包复制 libs/jpush-sdk-release1.x.y.jar 到工程 libs/ 目录下复制 libs/armeabi/lib原创 2015-05-05 22:09:09 · 1402 阅读 · 0 评论 -
Java ThreadLocal
四、总结 ThreadLocal使用场合主要解决多线程中数据数据因并发产生不一致问题。ThreadLocal为每个线程的中并发访问的数据提供一个副本,通过访问副本来运行业务,这样的结果是耗费了内存,单大大减少了线程同步所带来性能消耗,也减少了线程并发控制的复杂度。 ThreadLocal不能使用原子类型,只能使用Object类型。ThreadLocal的使用比syn原创 2014-08-21 11:04:02 · 580 阅读 · 0 评论 -
JAVA NIO 简介
1. 基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2. Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的底层转载 2014-08-21 10:04:26 · 454 阅读 · 0 评论 -
JAVA学习之4 强引用,弱引用,软引用 与 JVM
JAVA学习之4 引用与JVM1.java内存管理分为内存分配和内存回收,都不需要程序员负责。2.垃圾回收的机制主要是看对象是否有引用指向该对象。 java对象的引用包括 强引用 软引用 弱引用 虚引用3.强引用 是指创建一个对象并把这个对象赋给一个引用变量。 强引用有引用变量指向时永远不会被垃圾回收。即使内存不足的时候。4.软转载 2014-08-08 09:36:53 · 662 阅读 · 0 评论 -
Hibernate 缓存机制
一、why(为什么要用Hibernate缓存?)Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 二、what(Hibernate缓存原理是怎样的?)Hibern转载 2014-08-07 14:45:33 · 430 阅读 · 0 评论 -
Hibernate get和load区别
get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1.从返回结果上对比:load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null 2.从检索执行机制上对比: get方法和find方法都是直接从数转载 2014-08-20 14:36:10 · 427 阅读 · 0 评论 -
hibernate save和update以及saveOrUpdate区别
save()方法很显然是执行保存操作的,如果是对一个新的刚new出来的对象进行保存,自然要使用这个方法了,数据库中没有这个对象。update()如果是对一个已经存在的托管对象进行更新那么肯定是要使用update()方法了,数据中有这个对象。saveOrUpdate()这个方法是更新或者插入,有主键就执行更新,如果没有主键就执行插入。 区别:对于一个从托管状态到瞬态的转载 2014-08-20 14:41:33 · 476 阅读 · 0 评论 -
Hibernate性能优化技巧
本文是对Hibernate性能优化技巧的总结,共分为十三个小块,分别对不同的方面进行了深入浅出的介绍,认真学习和理解肯定会让你受益匪浅的。AD:文章分为十三个小块儿对Hibernate性能优化技巧进行总结性分析,分析如下:一、在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate转载 2014-08-07 16:45:03 · 490 阅读 · 0 评论 -
hibernate 延迟加载
Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。Hibernate 通过这种延迟加载来降低系统的内存开销,从而保证 Hibernate 的运行性能。下面先来剖析 Hibernate 延迟加载的“秘密”。集合属性的延迟加载当 Hibernate 从数据库中初始化某个持久化实体时,该实体的集合属性是否随持久化原创 2014-08-07 15:42:41 · 445 阅读 · 0 评论 -
数据持久化
数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称. 数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。cmp和Hibernate只是对象模型到关系模型之间转换的不同实现。只不过对象模型和关系模型应用广泛,所以就会误认为数据持久化就是对象模型到关系型数据库的转换罢了。Hibernate框架会提供这种机制。对象上数据的修转载 2014-08-20 14:13:01 · 498 阅读 · 0 评论 -
LeetCode总结
今天中午把leetCode上的题都看了原创 2014-08-17 21:39:01 · 501 阅读 · 0 评论 -
Hibernate事务与并发问题处理(乐观锁与悲观锁)
一、数据库事务的定义 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)转载 2014-08-06 21:26:33 · 445 阅读 · 0 评论 -
javax.servlet.ServletException: BeanUtils.populate
type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionjavax.servlet.ServletException: BeanUtils.popu转载 2015-03-09 09:56:22 · 1088 阅读 · 0 评论 -
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步): 两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数 1、传统同步请求参数 accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-chars原创 2014-12-10 14:59:41 · 638 阅读 · 0 评论 -
数据包 乱码问题 jpcap
注意返回的数据包表头 Content-Type 信息 :如果为Gzip 则需要解压原创 2014-12-18 15:57:21 · 4099 阅读 · 0 评论 -
java解析gzip格式的数据包
public class GzipUtil {public static String uncompress(ByteArrayInputStream in,String charset) {try { GZIPInputStream gInputStream = new GZIPInputStream(in); byte[] by = new byte[1024];转载 2014-12-18 15:54:32 · 2612 阅读 · 1 评论 -
JAVA中final
final方法将方法声明为final,那就说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。另外有一种被称为inline的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主原创 2014-09-13 20:40:09 · 499 阅读 · 0 评论 -
浅谈HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1转载 2014-09-13 13:26:09 · 514 阅读 · 0 评论 -
最简实例说明wait、notify、notifyAll的使用方法
wait()、notify()、notifyAll()是三个定义在Object类里的方法,可以用来控制线程的状态。这三个方法最终调用的都是jvm级的native方法。随着jvm运行平台的不同可能有些许差异。 如果对象调用了wait方法就会使持有该对象的线程把该对象的控制权交出去,然后处于等待状态。如果对象调用了notify方法就会通知某个正在等待这个对象的控制权的线程可以继转载 2014-09-09 18:41:51 · 506 阅读 · 0 评论 -
<%include file="a.jsp"%>与<jsp:include file="a.jsp"/>有什么区别?
是在编译时加入,所谓静态,就是在编译的时候将a.jsp的代码加入进来在编译,之后运行.是在运行时加入,所谓动态,就是单独编译,在运行时候加入进来,之后显示,这种include,可以传递参数原创 2014-07-31 10:16:58 · 645 阅读 · 0 评论 -
Hibernate查询方式汇总
Hibernate总的来说共有三种查询方式:HQL、QBC和SQL三种。但是细分可以有如下几种:一、HQL查询方式 这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多。条件查询、分页查询、连接查询、嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了类或者对象。其它的,包括一些查询函数(count(),sum()等)、查询条件的设转载 2014-08-07 16:13:30 · 465 阅读 · 0 评论 -
同步,异步,并发的区别
同步(tóng bù)synchronous;sync;synchronism;synchronization 指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系。异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到转载 2014-08-06 20:41:12 · 672 阅读 · 0 评论 -
Java HashMap实现原理
问:Java 的 HashMap是怎么实现的?HashMap的 Key答:通过键值对的形式保存需要存储的值。很显然这个答案不是面试官要的,这个答案也引起了我的回忆。曾经我在面试时也被几次问道过这个问题,我当时也是类似的回答。所以今天抽空大致研究了下HashMap的源码。HashMap其实也是一个线性的数组实现的,所以可以理解为其存储数据的容器就是一个线性数组。这可能转载 2014-07-27 21:35:54 · 404 阅读 · 0 评论 -
java hashcode()
以下是关于HashCode的官方文档定义:[plain] view plaincopyhashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。 hashCode 的常规协定是: 在 Java 应用程序执行期间,在同一对象上多次调用 hash转载 2014-07-27 09:20:07 · 489 阅读 · 0 评论 -
MVC
MVC的优点低耦合性视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。高重用性和可适用性随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任转载 2014-07-27 09:36:19 · 706 阅读 · 0 评论 -
Java native
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。 可以将native方法比作Java程序同C程序的接口,其实现步骤: 1、在Java中声明native()方法,然后编译; 2、用javah产生一个.h文件;转载 2014-07-27 08:56:38 · 512 阅读 · 0 评论 -
Java equals()
什么时候需要重写equals()? 我们知道每一个java类都继承自Object类,equals()是Object类中提供的方法之一。那么,让我们先来看看Object#equals()在Java中的原代码: public boolean equals(Object obj) { return (this == obj); } 可以看出,只有当一个实例等于它本转载 2014-07-26 22:03:34 · 531 阅读 · 0 评论 -
InputStream 与Reader的区别
java.io下面有两个抽象类:InputStream和ReaderInputStream是表示字节输入流的所有类的超类Reader是用于读取字符流的抽象类InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。即用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。弄清了两个超类的根本区原创 2014-06-12 19:15:53 · 644 阅读 · 0 评论 -
Java Proxy(代理)设计模式
作用:代理模式的作用是为qita原创 2014-05-22 19:59:24 · 546 阅读 · 0 评论 -
Spring 两个核心技术
1) Spring 简介Spring 是一个全方位的应用程序开发框架( framework ),是潜在的一站式解决方案,它定位于与典型应用相关的大部分基础结构。自从 2003 年发布以来, Spring Framework 已经对 Java 企业应用体系产生了前所未有的冲击,尽管历史不长,但它拥有深厚的历史根基。如今 Spring 已风靡全球,甚至有取代 EJB 的趋势,最新转载 2014-07-28 16:31:03 · 3900 阅读 · 1 评论 -
java虚拟机的内存区域划分
java虚拟机在执行java程序的过程中会把它所管理的内存划分成很多个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。Java虚拟机规范中把java虚拟机所管理的内存划分为以下几个区域。一、程序计数器(Program Counter Register) 程序计数器是一转载 2014-07-28 19:26:59 · 493 阅读 · 0 评论 -
java动态代理(JDK和cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为转载 2014-08-03 13:57:28 · 405 阅读 · 0 评论 -
pageContext
这个对象代表页面上下文,该对象主要用于访问JSP之间的共享数据。使用pageContext可以访问page、request、session、application范围的变量。pageContext是PageContext类的实例,它提供了如下两个方法来访问page、request、session、application范围的变量。getAttribute(String name):取得pa转载 2014-08-01 14:33:01 · 462 阅读 · 0 评论 -
Hibernate 工作原理
1.Hibernate是如何连接数据库 主要是通过hibernate.cfg.xml配置文件中的配置 在这个文件中定义了数据库进行连接所需要的信息,包括JDBC驱动、用户名、密码、数据库方言等,configuration类借助dom4j的XML解析器解析设置环境,然后使用这些环境属性来生成 SessionFactory。这样这个ses转载 2014-08-06 09:32:01 · 665 阅读 · 0 评论 -
java.io.Serializable
Java API中java.io.Serializable接口源码:1 public interface Serializable {2 } 类通过实现java.io.Serializable接口可以启用其序列化功能。未实现次接口的类无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。 J转载 2014-08-06 08:35:15 · 528 阅读 · 0 评论 -
java中堆和栈的区别
java中堆和栈的区别java中堆和栈的区别Roots 没有任何引用链相连时,就证明次对象不可用的。不可达的对象,暂时处于“缓刑”阶段,宣告一个对象真正死亡,至少经历两次标记过程:1.如果对象在进行根搜索后发现没有与GC Roots 相连接的引用链,那它将会被第一次标记并且进行一次筛选,筛选的条件是此对象是否有必要执行finalize()方法。当对象没有覆盖fina原创 2014-07-28 22:28:32 · 556 阅读 · 0 评论 -
java虚拟机中如何判断对象已经可以garbage collected
3.java虚拟机中如何判断对象已经可以garbage collected。(引申:如何对链表求环) 对象是否存活的算法一般有两种:引用计数算法(java中没有选用此方法来管理内存,最主要的原因是它很难解决对象之间的相互循环引用的问题)和根搜索算法。 根搜索算法的基本思路就是通过一系列的名为“GC Roots”的对象作为起始点,从这个节点开始向下搜索,搜索所有走过的路径称为引用链,转载 2014-07-28 22:19:27 · 701 阅读 · 0 评论 -
PreparedStatement和Statement的区别
在drp视频中,老师在数据库执行sql语句的时候多使用的是PreparedStatment,但是也提到了Statement。在视频中提到了一些区别,但是觉得不是很详细。 视频中提到PreparedStatement的优点包括两个: 1)会尽可能的提高性能 2)提高安全性(防止SQL Injeciton) 如争光说的二者相差一个单词Prepared,pre转载 2014-07-28 21:42:44 · 562 阅读 · 0 评论 -
HashMap与Hashtable的区别
HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?(同步实现需要耗费很多的资源,)这里简单分析他们的区别。 1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和Array转载 2014-07-28 22:43:33 · 554 阅读 · 0 评论 -
Spring3.0 AOP 详解
一、什么是 AOP。AOP(Aspect Orient Programming),也就是面向切面编程。可以这样理解,面向对象编程(OOP)是从静态角度考虑程序结构,面向切面编程(AOP)是从动态角度考虑程序运行过程。二、AOP 的作用。常常通过 AOP 来处理一些具有横切性质的系统性服务,如事物管理、安全检查、缓存、对象池管理等,AOP 已经成为一种非常常用的解转载 2014-08-03 14:08:45 · 475 阅读 · 0 评论