java
文章平均质量分 76
idaretobe
1.熟悉Android应用开发框架,能独立开发高性能的Android应用;精通Android 开发平台及框架原理,熟悉用户UI开发,网络编程,多线程,性能优化;熟悉OOA/OOD等设计方法;熟悉多线程、http/xml协议,Socket等技术,有扎实的Java语言基础,理解面向对象设计的基本原则,熟悉并能灵活运用常用的设计模式; 2.具有强烈的责任心和团队精神,工作尽职尽责,善于合作,吃苦耐劳,能在高强度的压力下工作; 3.具备良好的分析解决问题能力,独立承担任务和系统进度把控能力; 4.具有较强的自学和创新能力、逻辑分析和统筹规划能力,掌握新知识和新技术的能力。
展开
-
深入分析Java ClassLoader原理
深入分析Java ClassLoader原理转载 2022-12-28 22:28:53 · 106 阅读 · 0 评论 -
JAVA队列及实现类
JAVA队列( Queue )及实现类(双端队列)详解原创 2022-12-05 22:15:24 · 1080 阅读 · 1 评论 -
java中Queue接口
队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素就是说,队列以一种先进先出的方式管理数据,如果你试图向一个 已经满了的阻塞队列中添加一个元素或者是从一个空的阻塞队列中移除一个元索,将导致线程阻塞.在多线程进行合作时,阻塞队列是很有用的工具。队列会自动平衡负载。的容量是没有上限的(说的不准确,在不指定时容量为Integer.MAX_VALUE,不要然的话在put时怎么会受阻呢),但是也可以选择指定其最大容量,它是基于链表的队列,此队列按 FIFO(先进先出)排序元素。原创 2022-11-26 16:48:27 · 561 阅读 · 0 评论 -
动态代理的几种实现方式及优缺点
a、CGLB动态代理实现方式降低了被代理对象的要求b、CGLB动态代理对于被代理对象的final方法无法进行增强转载 2022-10-19 20:39:43 · 1094 阅读 · 0 评论 -
静态代理和动态代理
Java--静态代理和动态代理转载 2022-06-26 20:55:07 · 348 阅读 · 0 评论 -
Java两种动态代理JDK动态代理和CGLIB动态代理
版权目录代理模式JDK动态代理cglib动态代理测试代理模式代理模式是23种设计模式的一种,他是指一个对象A通过持有另一个对象B,可以具有B同样的行为的模式。为了对外开放协议,B往往实现了一个接口,A也会去实现接口。但是B是“真正”实现类,A则比较“虚”,他借用了B的方法去实现接口的方法。A虽然是“伪军”,但它可以增强B,在调用B的方法前后都做些其他的事情。Spring AOP就是使用了动态代理完成了代码的动态“织入”。使用代理好处还不止这些,一个工程如果依赖另一个工程给的接.转载 2021-03-25 22:44:34 · 283 阅读 · 0 评论 -
面试题:请讲讲JVM的内存模型
友情提示: 本文内容是基于 JDK 1.6 的,不同版本虚拟机之间也许会有些许差异,但不影响我们对JVM 内存模型的整体把握和了解。一. Java 虚拟机内存模型 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些数据区域可以分为两个部分:一部分是线程共享的,一部分则是线程私有的。其中,线程共享的数据区包括方法区和堆,线程私有的数据区包括虚拟机栈、本地方法栈和程序计数器。如下图所示:1、线程私有的数据区 线程私有的数据区 包...转载 2021-09-15 10:53:12 · 174 阅读 · 0 评论 -
Java 动态代理详解
Java 动态代理详解后端 Java编程创建时间:2018-12-21 01:46字数:5,622 阅读:1706 评论: 动态代理在Java中有着广泛的应用,比如Spring AOP、Hibernate数据查询、测试框架的后端mock、RPC远程调用、Java注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。本文主要介绍Java中两种常见的动态代理方式:JDK原生动态代理和CGLIB动态代理。由于Java动态代理与java反射机制关系紧密,请读者确保已经转载 2021-01-23 22:53:03 · 101 阅读 · 0 评论 -
能不能自己写一个类叫java.lang.System/String?网上答案都是错的--ClassLoader详解
能不能自己写一个类叫java.lang.System/String?网上答案都是错的--ClassLoader详解java进阶系列-CLassLoader详解java进阶系列-反射详解java进阶系列-动态代理文章目录类启动过程 加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初始化(Initialization) 卸载(UnLoading) 初步介绍类加载器 启动(Boot..转载 2021-01-23 22:25:58 · 110 阅读 · 0 评论 -
为什么ConcurrentHashMap是弱一致的
本文将用到Java内存模型的happens-before偏序关系(下文将简称为hb)以及ConcurrentHashMap的底层模型相关的知识。happens-before相关内容参见:JLS §17.4.5. Happens-before Order、深入理解Java内存模型以及Happens before;ConcurrentHashMap的详细介绍以及底层原理见深入分析Concurr转载 2015-01-21 21:30:24 · 385 阅读 · 0 评论 -
Android 多线程与Java多线程比较 有哪些区别
多线程——计时器设计知识点: 1)进程和线程的概念; 2)Java中的线程,在Java中创建线程的方式; 3)Android中的线程,包括:Message、Handler、Looper和HandlerThread等概念。进程:一般可以在同一时间内执行多个程序的操作系统都有进程的概念。一个进程就是一个执行中的程序,而每一个进程都有自己独立的一块内存空间、一组系转载 2015-03-28 23:30:44 · 2166 阅读 · 0 评论 -
HTTP协议详解(真的很经典)
转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与转载 2015-03-26 21:48:40 · 368 阅读 · 0 评论 -
java Socket(阻塞) api记录点
参考资料: 《Java TCP/IP Socket 编程》 2ed 记录点: 1 accept(),read()和receive() 对于这些方法,我们可以使用Socket类、ServerSocket类和DatagramSocket类的setSoTimeout()方法,设置其阻塞的最长时间(以毫秒为单位)。如果在转载 2015-01-25 17:54:02 · 918 阅读 · 0 评论 -
JVM加载class文件的原理机制
1 JVM 简介JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从“Hello World ”开始的,然后会写个复杂点class ,然后再找一些开源框架,比如Spring ,Hibernate 等等,再然后就开发企业级的应用,比如网站、企业内部应用、实时交易系统等等,直到某一天突然发现做的系统咋就这么慢呢,而且时不时还来个内存溢出什么的,今天是交易系统报了St转载 2015-02-25 16:58:22 · 451 阅读 · 0 评论 -
什么是java序列化,如何实现java序列化?
Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。序列化就是一转载 2015-02-25 13:38:08 · 618 阅读 · 0 评论 -
幕后英雄的用武之地——浅谈Java内部类的四个应用场景
幕后英雄的用武之地 ——浅谈Java内部类的四个应用场景 Java内部类是Java言语的一个很重要的概念,《Java编程思想》花了很大的篇幅来讲述这个概念。但是我们在实践中很少用到它,虽然我们在很多时候会被动的使用到它,但它仍然像一个幕后英雄一样,不为我们所知,不为转载 2015-02-25 17:40:25 · 426 阅读 · 0 评论 -
探索 ConcurrentHashMap 高并发性的实现机制
简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅读本文需要读者了解 Java 内存模型。同时,ConcurrentHashMap 的源代转载 2015-01-21 21:26:47 · 395 阅读 · 0 评论 -
HashMap的原理及遍历
【遍历方法一】[java] view plaincopyfor(Map.Entry entry : hashmap.entrySet()){ System.out.println("Key="+entry.getKey()+"---->value="+entry.getValue().toString()) }转载 2015-01-21 21:18:24 · 495 阅读 · 0 评论 -
Java线程(七):Callable和Future
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步转载 2015-03-13 22:25:18 · 415 阅读 · 0 评论 -
使用json-lib进行Java和JSON之间的转换
1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, java arrays and XML等转换成JSON,或者反向转换的功能。 2. json-lib 主页 : http://json-lib.sourceforge.net/ 3.执行环境 需要以下类库支持jakarta commo转载 2015-03-13 22:30:48 · 417 阅读 · 0 评论 -
Volatile和Transient
Volatile: Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比转载 2014-10-16 22:55:16 · 421 阅读 · 0 评论 -
Annotation详解
Annotation 前言:作为一名Android开发人员,在使用Java开发代码的时候不免会经常看到一些注解信息,或者是在使用一些三方的开源框架的代码时候看到一些别人的自定义注解,比如Retrofit,Butter Knife,ActiveAndroid等都有些自己定义的注解;如果你对注解不了解或者不知道如何使用,那么你在用这些三方框架的时候甚至在自己写源码修改源码的时候就会变得更加的困难和举...转载 2018-04-10 19:32:38 · 215 阅读 · 0 评论 -
OutputStreamWriter、PrintWriter和BufferedWriter区别
PrintWriter无追加模式,若写入已有文件,将清空原文件,重新写入;其println自动换行;OutputStreamWriter与BufferedWriter有追加模式,append设置为true时,在已有文件末尾追加;append=false时,从已有文件第一行开始覆盖写入,若写入内容比原有文件短,则只覆盖部分内容;BufferedWriter需手动换行,bw.newLine转载 2017-06-30 20:59:56 · 2447 阅读 · 0 评论 -
彻底攻克java流
类图1:IO分两种流 字节流 InputStream OutputStream 字符流 Reader Writer 他们都是抽象类 具体实现 字节流 FileInputStream FileOutputStream 字符流 FileReader FileWriter 字节流转换成字符流可以用 InputSteamReader转载 2017-06-30 20:32:40 · 341 阅读 · 0 评论 -
Java锁的种类以及辨析
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA中常见的锁以及其特性,为大家答疑解惑。1、自旋锁2、自旋锁的其他种类3、阻塞锁4、可重入锁5、读写锁6、互斥锁7、悲观锁8、转载 2016-11-28 15:36:28 · 325 阅读 · 0 评论 -
线程通信
线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了。本文将讲解以下几个JAVA线程间通信的主题:1、通过共享对象通信2、忙等待3、wait(),notify()和notifyAll()4、丢失的信号5、假唤醒6、多线程等待相同信号7、不要对常量字符串或全转载 2016-11-28 18:46:04 · 322 阅读 · 0 评论 -
Comparison method violates its general contract!
Brother Zeng遇到的错误:java.lang.IllegalArgumentException: Comparison method violates its general contract!网上查到一个解释:Description: The sorting algorithm used by java.util.Arrays.sort and (indirec转载 2015-07-10 22:44:22 · 1502 阅读 · 0 评论 -
关于java的集合类,以及HashMap中Set的用法
package com.tiantian;import java.util.*;public class JAVAContainer { public static void main(String[] args) throws Exception { // ArrayList { ArrayLi转载 2015-04-03 19:08:39 · 647 阅读 · 0 评论 -
ExecutorService的十个使用技巧
ExecutorService这个接口从Java 5开始就已经存在了。这得追溯到2004年了。这里小小地提醒一下,官方已经不再支持Java 5, Java 6了,Java 7在半年后也将停止支持。我之所以会提起ExecutorService这么旧的一个接口是因为,大多数Java程序员并没有搞清楚它的工作原理。关于它可以介绍的有很多,这里我只想分享它的一些较少为人所知的特性以及实践技巧。本文转载 2015-03-23 22:13:20 · 810 阅读 · 0 评论 -
ConcurrentHashMap
曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并转载 2015-01-21 21:21:28 · 365 阅读 · 0 评论 -
详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两转载 2015-02-05 19:41:36 · 420 阅读 · 0 评论 -
[Solr实践]Solr Cache使用介绍及分析
本文将介绍Solr查询中涉及到的Cache使用及相关的实现。Solr查询的核心类就是SolrIndexSearcher,每个core通常在同一时刻只由当前的SolrIndexSearcher供上层的handler使用(当切换SolrIndexSearcher时可能会有两个同时提供服务),而Solr的各种Cache是依附于SolrIndexSearcher的,SolrIndexSearcher在则C转载 2015-01-15 21:27:35 · 554 阅读 · 0 评论 -
HashMap、TreeMap、LinkedHashMap、hashtable的区别
上篇博客中我们详细的分析了java集合《java中Map,List与Set的区别》。同时我们也对HashSet和HashMap的核心方法hashcode进行了详解,见《探索equals()和hashCode()方法》。万事俱备,那么下面我们就对基于hash算法的三个集合HashTable,HashSet和HashMap详解。本文目录:1. HashTab转载 2015-01-09 13:22:33 · 856 阅读 · 0 评论 -
java Timer 的 schedule 和 scheduleAtFixedRate 方法的区别
API:schedulepublic void schedule( task, long delay)安排在指定延迟后执行指定的任务。参数:task - 所要安排的任务。delay - 执行任务前的延迟时间,单位是毫秒。抛出: - 如果 delay 是负数,或者 delay + System.currentTimeMillis() 是负数。转载 2014-09-27 15:27:03 · 1422 阅读 · 0 评论 -
java创建文件和目录
[java] view plaincopy创建文件和目录的关键技术点如下: [java] view plaincopy"code" class="java"> 1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败 2、File类的mkd转载 2014-09-19 19:16:46 · 489 阅读 · 0 评论 -
推荐!国外程序员整理的Java资源大全
Java 几乎是许多程序员们的入门语言,并且也是世界上非常流行的编程语言。国外程序员 Andreas Kull 在其 Github 上整理了非常优秀的 Java 开发资源,推荐给大家。 译文由 ImportNew- 唐尤华翻译完成。 以下为具体资源列表。 构建 这里搜集了用来构建应用程序的工具。Apache Maven:Maven 使用声明进转载 2015-01-09 13:43:34 · 714 阅读 · 0 评论 -
java并发编程-Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执转载 2014-12-02 20:47:08 · 431 阅读 · 0 评论 -
java synchronized详解
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synch转载 2014-09-21 16:13:43 · 359 阅读 · 0 评论 -
JDK 7 中的 Fork/Join 模式
介绍随着多核芯片逐渐成为主流,大多数软件开发人员不可避免地需要了解并行编程的知识。而同时,主流程序语言正在将越来越多的并行特性合并到标准库或者语言本身之中。我们可以看到,JDK 在这方面同样走在潮流的前方。在 JDK 标准版 5 中,由 Doug Lea 提供的并行框架成为了标准库的一部分(JSR-166)。随后,在 JDK 6 中,一些新的并行特性,例如并行 collection 框架,转载 2014-03-27 13:33:44 · 617 阅读 · 0 评论 -
JAVA多线程与并发学习总结
1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运原创 2014-03-27 11:08:51 · 838 阅读 · 0 评论