java
文章平均质量分 80
yolosliu
那些寂寞的岁月,成全最美的人生!
展开
-
Java面试资源
基本概念操作系统中 heap 和 stack 的区别什么是基于注解的切面实现什么是 对象/关系 映射集成模块什么是 Java 的反射机制什么是 ACIDBS与CS的联系与区别Cookie 和 Session的区别fail-fast 与 fail-safe 机制有什么区别get转载 2017-11-23 18:20:27 · 473 阅读 · 0 评论 -
Java反射机制应用实践
转自:https://www.ziwenxie.site/2017/03/22/java-reflection引言Java反射机制是一个非常强大的功能,在很多大型项目比如Spring, Mybatis中都可以看见反射的身影。通过反射机制我们可以在运行期间获取对象的类型信息,利用这一特性我们可以实现工厂模式和代理模式等设计模式,同时也可以解决Java泛型擦除等令人苦恼转载 2017-05-23 16:53:53 · 271 阅读 · 0 评论 -
12个非常有用的JavaScript技巧
1) 使用!!将变量转换成布尔类型有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将它们的值视为true。对于做这样的检查,你可以使用||(双重否定运算符),它能自动将任何类型的数据转换为布尔值,只有这些变量才会返回false:0,null,"",undefined或NaN,其他的都返回true。我们来看看这个简单的例子:funct原创 2017-05-11 15:17:24 · 234 阅读 · 0 评论 -
Hibernate的事务处理和二级缓存
事务的特性:事务有严格的定义,需要同时满足4个特性,即原子性、一致性、隔离性、持久性。这4个特性通常称为ACID特性,具体如下:·原子性(Atomic):表示将事务中所做的操作捆绑成一个不可分割的单元,即对事务所进行的数据修改等操作,要么全部执行,要么全都不执行。·一致性(Consistancy):表示事务完成时,必须将所有的数据都保持一致。·隔离性(Isolation):指一个事原创 2017-04-29 23:38:42 · 517 阅读 · 0 评论 -
类加载过程
首先,我们先来看这道选择: 以下哪项不属于java类加载过程? A.生成java.lang.Class对象 B.int类型对象成员变量赋予默认值 C.执行static块代码 D.类方法解析-----------------------------------------------------------------------原创 2017-04-05 22:04:42 · 361 阅读 · 0 评论 -
Java反射机制详解
Java反射机制详解反射机制是Java中一个非常重要的特性,允许再运行是进行自我检查,同时也允许对其内部成员进行操作。反射机制是什么反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。反射机制能做什么反射原创 2017-03-16 22:03:30 · 227 阅读 · 0 评论 -
K-SUM
K-SUM一个典型的k个数的和相等的问题,所耗时间的N^(k-1),N为给出的数组中元素个数1、2-sum给出一个整形数组,从中找出两个元素的值的和等于给定的数要求:定义的函数twoSum应该返回两个明确的元素,他们的和等于给出的值,并且元素1的下标小于元素2的下标如:输入: numbers={2, 7, 11, 15}, target=9输出: index原创 2017-03-16 12:56:02 · 397 阅读 · 0 评论 -
Java设计模式—Observer模式
简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。 一、观察者模式的结构 本模式的类图结构如下:图1、观察者模式的静态结构可从类图中看清楚。 在观察者模式里有如下的角色:转载 2017-03-16 11:03:03 · 674 阅读 · 0 评论 -
Java开发中的23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真转载 2017-03-16 11:18:26 · 273 阅读 · 0 评论 -
Java IO 的自述
我是Java IO, 你可能听说过我,了解过我,用我的API写过简单的程序, 但估计大部分人也就此打住, 对我的了解并不深入。这也难怪,毕竟在实际的工作当中,直接使用我的API来操作文件的机会并不多, 更多时候你只需要把配置文件(xml, properties等)放到指定的位置, 剩下的工作就交给框架去处理了, 框架会把这些配置数据变成Java 对象来让你调用, 不用你去操转载 2017-05-08 20:51:47 · 231 阅读 · 0 评论 -
Java相关资料
1、书籍推荐Java基础:《Java核心技术:卷1基础知识》、《Java编程思想》、《Effective Java》Linux:《鸟哥的Linux私房菜:基础学习篇(第三版)》、《LinuxShell脚本攻略》Web开发:《Spring揭秘》、《J2EE核心模式》Web架构设计:《分布式Java应用:基础与实践》Socket和多线程:《Java并发编程实战》关系型数据库:《原创 2017-05-09 21:55:22 · 473 阅读 · 0 评论 -
大富翁游戏(跳台阶)&&拼凑钱币(求和的可能性)&&最大矩形面积&&最长公共子串
1、大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步。求玩家走到第n步(nimport java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(Syst原创 2017-07-02 20:53:24 · 3251 阅读 · 0 评论 -
写出优质Java代码的4个技巧
我们平时的编程任务不外乎就是将相同的技术套件应用到不同的项目中去,对于大多数情况来说,这些技术都是可以满足目标的。然而,有的项目可能需要用到一些特别的技术,因此工程师们得深入研究,去寻找那些最简单但最有效的方法。本文我们将介绍一些有助于解决常见问题的通用设计策略和目标实现技术,即:只做有目的性的优化常量尽量使用枚举重新定义类里面的equals()原创 2017-11-09 09:30:21 · 1151 阅读 · 0 评论 -
Java 8新特性终极指南
在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8——lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java 8中抽象类与接口的比较。我们也在其他地方引用了15个必读的Java 8教程。当然,我们也探究了Java 8的一些不足之处,比如Java 8的“黑暗面”。现在,是时转载 2017-09-19 11:51:34 · 443 阅读 · 0 评论 -
Vector与ArrayList区别
1. Vector & ArrayList 1) Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%转载 2017-09-19 10:06:48 · 459 阅读 · 0 评论 -
设计模式学习笔记-适配器模式
1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。3. 模式中的角色 3.1 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。原创 2017-09-08 20:17:34 · 337 阅读 · 0 评论 -
jvm 内存dump、gc查看、线程死锁,jmap、jstack、jstat
1. jstat 这个命令对于查看Jvm的堆栈信息很有用。能够查看eden,survivor,old,perm等heap的capacity,utility信息 对于查看系统是不是有能存泄漏以及参数设置是否合理有不错的意义2. jstack 这个是用来查看jvm当前的thread dump的。可以看到当前Jvm里面的线程状况。 这个对转载 2017-09-08 20:10:06 · 860 阅读 · 0 评论 -
JAVA中堆和栈的区别
在看这个之前,我们先来看看数据的存储到底是怎样的。a.寄存器寄存器是最快的存储区,位于处理器内部b.堆栈位于RAM中,通过堆栈指针获取,指针下一,分配新的内存,上移,释放内存c.堆位于内存池,用于存放所有的java对象。无需知道存活时间,但比堆栈进行存储分配和清理耗费更多的时间d.常量存储通常位于程序代码的内部,也可以放在ROM中原创 2017-09-16 11:10:31 · 304 阅读 · 0 评论 -
Spring 的本质系列
1、对象的创建面向对象的编程语言是用类(Class)来对现实世界进行抽象, 在运行时这些类会生成对象(Object)。 当然,单独的一个或几个对象根本没办法完成复杂的业务, 实际的系统是由千千万万个对象组成的, 这些对象需要互相协作才能干活,例如对象A调用对象B的方法,那必然会提出一个问题:对象A怎么才能获得对象B的引用呢?最简单的办法无非是: 当对象A需要使用对象B的时候, 把它给n转载 2017-07-20 22:21:41 · 715 阅读 · 0 评论 -
腾讯秋招 编程
1、假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa, aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx, yyyy 其中a的Index为0,aa的Index为1,aaa的Index为2,以此类推。 编写一个函数,输入是原创 2017-07-05 22:57:12 · 682 阅读 · 0 评论 -
java设计模式—Decorator模式
一、学习装饰着模式1、定义及作用 该模式以对客户端透明的方式扩展对象的功能。2、涉及角色 抽象构件角色:定义一个抽象接口,来规范准备附加功能的类。 具体构件角色:将要被附加功能的类,实现抽象构件角色接口。 抽象装饰者角色:持有对具体构件角色的引用并定义与抽象构件角色一致的接口。 具体装饰角转载 2017-03-16 11:10:54 · 207 阅读 · 0 评论 -
java设计模式—分类
转载自:http://www.cnblogs.com/forlina/archive/2011/06/23/2088224.html设计模式在粒度和抽象层次上各不相同。由于存在众多的设计模式,所以我们可以用一种方式将它们组织起来。第一是目的准则,即模式是用来完成什么工作的。模式依据其目的可分为创建型( Creational)、结构型( Structural)、或行为型( Beh转载 2017-03-16 11:13:21 · 192 阅读 · 0 评论 -
JAVA中的锁机制
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。java平台下的锁如下所示:1、自旋锁2、自旋锁的其他种类3、阻塞锁4、可重入锁5、读写锁6、互斥锁7、悲观锁8、乐观锁9、公平锁10、非公平锁11、偏向锁12、对象锁13、线程锁14、锁粗化15、轻原创 2017-03-06 14:59:39 · 282 阅读 · 0 评论 -
java三大框架之Spring
Spring Framework是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架。Spring中包含的关键特性:1.强大的基于JavaBeans的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。2.一个可用于从applet到Java EE等不同运行环境的核心Bean工厂。数据库原创 2017-03-06 10:53:43 · 273 阅读 · 0 评论 -
java 三大结构之Struct
java的三大框架分别是struct,spring和Hiberate。这里我们先来看看struct。目前,运用广泛的是struct2,及MVC框架。M是指model,V是指view,C是指controller。主要是使用一个名为FilterDispatcher的过滤器来处理客户端的请求。其工作流程如下:1、判断客户端是否以.action请求,如果不适,直接交由servlet引擎原创 2017-03-03 16:51:51 · 15983 阅读 · 2 评论 -
JAVA面试之java基础1
1、String类为什么是final的主要是为了“效率” 和 “安全性” 的缘故。若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final。我们都知道不可变就是当创建这个对象或类的实例后,就不允许修改它的值了。那么为什么当我们定义String s = "hello";s +="world";System.out.println(s)原创 2017-03-06 08:41:58 · 392 阅读 · 0 评论 -
java面试之HashMap的实现原理和底层数据结构
HashMap和Hashtable的区别两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全Hashtable的实现方法里面都添加了synchronized关键字来确保线程同步,因此相对而言HashMap性能会高一些,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下若使用HashMap需要使用Collections.synchronized转载 2017-03-06 08:46:07 · 2945 阅读 · 0 评论 -
Java中HashMap和TreeMap的区别深入理解
转自:http://www.jb51.net/article/32652.htm首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如转载 2017-03-18 16:11:43 · 341 阅读 · 1 评论 -
java之数据的存储
在java的运行环境中,我们一般会关注,对象的存储位置。在java中,一般有5个存储空间。1.寄存器寄存器就是最快的存储区,位于处理器内部2.堆栈位于通常的RAM中,通过堆栈指针获取。如果需要分配新的内存空间,需要将指针下移。如果需要释放存储空间,需要将指针上移。一般,我们需要知道生命周期。3.堆堆的位置一般在内存池中,用于存放所有的JAVA对象,我们无需知晓存活的时间,但原创 2017-03-04 21:52:41 · 389 阅读 · 0 评论 -
java.lang.NullPointerException的原因(空指针)
一般报java.lang.NullPointerException的原因有以下几种: ·字符串变量未初始化; ·接口类型的对象没有用具体的类初始化,比如: List lt; 会报错 List lt = new ArrayList(); 则不会报错了 ·当一个对象的值为空时,你没有判断为空的情况。 你可以试着把下面的代码前加一行代码: if(rb!=null);转载 2017-03-02 21:18:11 · 877 阅读 · 0 评论 -
JAVA面试之容器
java collections框架中大量集合接口以及这些接口的实现类和操作他们的算法,具体而言,主要提供了List、Queue、Set、Stack和Map。其中Collection接口下有List、Queue、Set、Stack。Map里面HashMap、Hashtable、TreeMap、WeakHashMap。下面来看看list、set、map的实现类原理。1> list原创 2017-03-07 16:02:14 · 1582 阅读 · 0 评论 -
java内存分配与内存溢出异常
1 Java堆2 方法区3 程序计数器4 Java虚拟机桟1 局部变量表2 操作数栈3 动态连接4 方法返回地址5 本地方法桟6 直接内存区Java内存区域可以分为线程共享和线程私有: 线程共享: Java堆、方法区 线程私有: 虚拟机桟、本地方法区、程序计数器1 Java堆Java堆是虚拟机锁管理的内存中最大的一块。堆是线程转载 2017-03-29 17:53:11 · 604 阅读 · 0 评论 -
java中类加载的全过程及内存图分析
类加载机制:jvm把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成jvm可以直接使用的java类型的过程。(1)加载将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。(2)链接 将java类的二进制代码合并到jvm的运行转载 2017-03-13 15:54:58 · 502 阅读 · 0 评论 -
java笔试开发基本知识
1、http的6种请求方式1.GET:GET可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。2.HEAD:HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象原创 2017-03-25 21:03:59 · 254 阅读 · 0 评论 -
Java模拟面试题
这个牛客的模拟题,现在将遇到的一些知识点分享出来,看看在平时的准备中,我们应该关注那些方面:1、String类型如何转换成int或int[]类型将String转换成int的方法如下:通过#Integer.parseInt(str)方法或者是#Integer.valueOf(str).intValue();这两种方法的区别在于第一种方法:i=Integer.parse原创 2017-03-24 10:41:33 · 1334 阅读 · 0 评论 -
字节流、字符流和排队策略
排队策略1、直接提交:工作队列的默认选项就是SynchronousQueue,他讲任务直接提交给线程而不保存他们。在此次,如果不存在可用于立即运行任务的线程,则试图把任务加入队列将失败。因此会构造一个新的线程。此策略可以避免在处理可能具有内部依赖性的请求集时出现锁。直接提交通常要求无界maximunPoolSizes以避免拒绝提交的任务。当命令以超过队列所能处理的平均数连续到达时,此策略允原创 2017-03-14 21:47:46 · 345 阅读 · 0 评论 -
进程线程及进程间通信
1.进程的定义进程是一个具有一定独立功能的程序或程序段在一组数据集合上的一次动态执行过程。2.进程的特性进程具有动态性1>进程具有动态的地址空间。进程的地址空间无论从数量还是从内容上都是动态的,因为进程中所包含的代码是随指令执行和CPU状态的改变而变得;进程中使用的数据是随变量的生成及变量的复制而变的。2>系统对进程的控制信息是动态的。系统要对进程进行控制,就需原创 2017-03-11 20:36:49 · 378 阅读 · 0 评论 -
Array, ArrayList, LinkedList之间的区别分析
文章转自:http://blog.csdn.net/y999666/article/details/51502234(一)Array(数组类) Java中最基本的数据结构,提供动态创建和访问java数组的方法,根据定义的Array类型,其中的元素与类型必须相同。Array是一个固定大小的容器,底层采用的是线性连续空间来存放元素。与Array容易混淆的还有Arrays(静态类转载 2017-03-30 13:24:09 · 568 阅读 · 0 评论 -
IO流
输入输出流在java中,输入和输出都被称之为抽象的流,流可以看作是一组有序的字节集合,即数据在两设备之间的传输。主要的作用是为了改善程序性能并且使用方便。流可以分为两大类:字节流和字符流。字节流以字节为单位(8bit),字符流以字符为单位(16bit)。两者之间的最主要的区别在于字节流在处理输入输出时不会用到缓存,而字符流用到了缓存。IO流字原创 2017-03-23 15:32:10 · 246 阅读 · 0 评论 -
Struts2d的配置元素之struts.xml配置文件
struts.xml文件是整个struts框架的核心,下面是一份完整的struts文件骨架,这个文件没有实际意义"-//Apache Software Foundation//DTD Struts Configuration 2.1.1//EN""http://struts.apache.org/dtds/struts-2.1.7.dtd">原创 2017-03-29 22:12:21 · 306 阅读 · 0 评论