- 博客(27)
- 资源 (11)
- 问答 (1)
- 收藏
- 关注
原创 锁的等级:方法锁、对象锁、类锁
锁的等级:方法锁、对象锁、类锁。对象锁(方法锁)是用来控制实例方法之间的同步,类锁是用来控制静态方法(或静态变量互斥体)之间的同步// 类锁:形式1public static synchronized void Method1()// 类锁:形式2public void Method2(){ synchronized (Test.class) { ...
2018-09-12 13:18:38 822
原创 java 生产者消费者模式
生产者消费者模式。public class Product { public int product = 0; public final static int MAX = 999; public final static int MIN = 0; public synchronized void produce(){ ...
2018-09-12 13:18:30 163
原创 ThreadLocal的设计理念与作用
ThreadLocal的设计理念与作用。在JDK的早期版本中,提供了一种解决多线程并发问题的方案: java.lang.ThreadLocal类.ThreadLocal类在维护变量时,实际使用了当前线程(Thread)中的一个叫做ThreadLocalMap的独立副本,每个线程可以独立修改属于自己的副本而不会互相影响,从而隔离了线程和线程,避免了线程访问实例变量发生冲突的问题.Thread...
2018-09-12 13:18:22 441
原创 ThreadPool用法与优势
ThreadPool用法与优势。(1). 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线...
2018-09-12 13:18:13 1128
原创 Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等
Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。java.util.concurrent包分成了三个部分,分别是java.util.concurrent、java.util.concurrent.atomic和java.util.concurrent.lock。内容涵盖了并发集合类、线程池机制、同步互斥机制、线程安全的变量更新工具类、...
2018-09-12 13:18:06 391
原创 spring-data-redis increment方法
spring-data-redis increment方法主要是实现整数类型的自增的,可以通过该函数自己封装incr和decr方法。但是在使用如下方法获取自增的值得时候会报错ValueOperations<String, Object> valueOper=redisTemplate.opsForValue();valueOper.increment(key,1);O...
2018-09-12 13:17:57 5502
原创 Spring的注入方式--构造方法--解决需要在构造方法里面去初始化全局变量
构造方法注入public class UserService implements IUserService { private IUserDao userDao; public UserService(IUserDao userDao) { this.userDao = userDao; }}先看一段代码,下面的代码能运行成功吗?@...
2018-09-12 13:17:42 2144
原创 wait()和sleep()的区别
wait()和sleep()的区别。① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。② 锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或...
2018-09-11 19:14:55 139
原创 反射的作用于原理
反射的作用于原理。一、 原理 简单的来说,反射机制其实就是指程序在运行的时候能够获取自身的信息。如果知道一个类的名称/或者它的一个实例对象, 就能把这个类的所有方法和变量的信息(方法名,变量名,方法,修饰符,类型,方法参数等等所有信息)找出来。如果明确知道这个类里的某个方法名+参数个数 类型,还能通过传递参数来运行那个类里的那个方法,这就是反射。 尽管Java不是一种动态语...
2018-09-11 19:14:44 1599
原创 解析XML的几种方式的原理与特点:DOM、SAX、PULL
解析XML的几种方式的原理与特点:DOM、SAX、PULL。XML的解析方式有很多,光开源的就有十多种:如Xerces、JDOM、DOM4J、XOM、JiBX、KXML、XMLBeans、jConfig、XStream、XJR等。但是最常用的还是sax、dom、pull、dom4j而android中用的比较多的是 sax(Simple APIs for XML)、dom(Documen...
2018-09-11 19:14:35 2298
原创 设计模式:单例、工厂、适配器、责任链、观察者等等
单列Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。从另一个角度来说,Singleton模式其实也是一种职责型模式。因为我们创建了一个对象,这个对象扮演了独一无二...
2018-09-11 19:14:27 869
原创 java排序
1. 选择排序这个排序方法最简单,废话不多说,直接上代码:public class SelectSort { /** * 选择排序 * 思路:每次循环得到最小值的下标,然后交换数据。 * 如果交换的位置不等于原来的位置,则不交换。 */ public static void main(String[] args) { ...
2018-09-11 19:14:20 165
原创 线程同步的方法:sychronized、lock、reentrantLock等
线程同步的方法:sychronized、lock、reentrantLock等。如果你向一个变量写值,而这个变量接下来可能会被另一个线程所读取,或者你从一个变量读值,而它的值可能是前面由另一个线程写入的,此时你就必须使用同步。sychronizedJava语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码,它是在 软件层面依赖JVM实现同...
2018-09-11 19:13:57 326
原创 实现多线程的两种方法:Thread与Runable
实现多线程的两种方法:Thread与Runable。实现多线程有两种方式:(自JDK1.5之后有三种,最后一种并不常用)(1).继承Thread类(2).实现Runnable接口(Callable接口)一个类如果实现了Runnable接口或者继承了Thread类,那么它就是一个多线程类,如果是要实现多线程,还需要重写run()方法,所以run() 方法是多线程的入口。但是在启动...
2018-09-11 19:13:45 1222
原创 Interface与abstract类的区别
Interface与abstract类的区别。(01).abstract class 在Java中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。(02).在abstract class 中可以有自己的数据成员,也可以有非abstarct的方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static fina...
2018-09-11 19:13:34 619
原创 Override和Overload的含义和区别
Override和Overload的含义和区别。(1). Override 特点 (01)、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果; (02)、覆盖的方法的返回值必须和被覆盖的方法的返回一致; (03)、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;(04)、方法被定义为final不能被重写。 (05)、对于继...
2018-09-11 19:13:25 2676
原创 Java面向对象的三个特征与含义
Java面向对象的三个特征与含义。三大特征是:封装、继承和多态。封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在Java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。继承是子对象可以继承父对象的属性和行为,亦即父对...
2018-09-11 19:13:15 898
原创 Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况
Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。 (1). ThrowableThrowable是 Java 语言中所有错误或异常的超类。Throwable包含两个子类: Error 和 Exception 。它们通常用于指示发生了异常情况。Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTrace()等接...
2018-09-06 20:31:48 444
原创 try catch finally,try里有return,finally还执行么
try catch finally,try里有return,finally还执行么?(1)、不管有木有出现异常,finally块中代码都会执行;(2)、当try和catch中有return时,finally仍然会执行;(3)、在try语句中,try要把返回的结果放置到不同的局部变量当中,执行finaly之后,从中取出返回结果,因此,即使finaly中对变量进行了改变,但是不会影响返回结...
2018-09-06 20:30:50 1562
原创 Collection包结构,与Collections的区别
Collection包结构,与Collections的区别。(1)java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。 Collection ├List │├LinkedList │├A...
2018-09-06 20:30:23 2349
原创 TreeMap、HashMap、LindedHashMap的区别
TreeMap、HashMap、LindedHashMap的区别。Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;...
2018-09-06 20:29:53 764
原创 HashMap和ConcurrentHashMap的区别,HashMap的底层源码
HashMap和ConcurrentHashMap的区别,HashMap的底层源码。ConcurrentHashMap融合了hashtable和hashmap二者的优势。hashtable是做了同步的,hashmap未考虑同步。所以hashmap在单线程情况下效率较高。hashtable在的多线程情况下,同步操作能保证程序执行的正确性。但是hashtable每次同步执行的时候都要锁住整...
2018-09-06 20:29:20 944
原创 HashMap和HashTable的区别
HashMap和HashTable的区别。HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(va...
2018-09-06 20:28:45 111
原创 Map、Set、List、Queue、Stack的特点与用法
Map、Set、List、Queue、Stack的特点与用法。Collection 接口的接口 对象的集合├ List 子接口 按进入先后有序保存 可重复│├ LinkedList 接口实现类 链表 插入删除 没有同步 线程不安全│├ ArrayList 接口实现类 数组 随机访问...
2018-09-06 20:28:12 487
原创 Hashcode的作用
Hashcode的作用。Hash是散列的意思,就是把任意长度的输入,通过散列算法变换成固定长度的输出,该输出就是散列值。关于散列值,有以下几个关键结论:1、如果散列表中存在和散列原始输入K相等的记录,那么K必定在f(K)的存储位置上2、不同关键字经过散列算法变换后可能得到同一个散列地址,这种现象称为碰撞3、如果两个Hash值不同(前提是同一Hash算法),那么这两个Hash值对应的...
2018-09-06 20:27:11 129
原创 java Object有哪些公用方法
Object有哪些公用方法?Object是所有类的父类,任何类都默认继承Object。Object类到底实现了哪些方法?(1)clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方...
2018-09-06 20:26:13 511
原创 java九种基本数据类型
九种基本数据类型的大小,以及他们的封装类。java提供了一组基本数据类型,包括boolean, byte, char, short, int, long, float, double, void.同时,java也提供了这些类型的封装类,分别为Boolean, Byte, Character, Short, Integer, Long, Float, Double, Void类...
2018-09-06 20:25:18 1056
java面试题总结 下载
2017-05-16
在使用jqueryui的tab方法是遇到一个问题,不知道为什么,求高手解答
2015-02-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人