2018年8月29日

摘要: 堆:顺序随意——引用类型的变量——存储引用类型变量的地址 栈:后进先出——值类型 堆和栈的区别 功能不同 栈内存用来存储局部变量和方法调用。 而堆内存用来存储Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。 共享性不同 栈内存是线程私有的。 堆内存是所有线程共 阅读全文
posted @ 2018-08-29 16:25 xiaowater 阅读(101) 评论(0) 推荐(0)
摘要: javadoc的缺点,javadoc不能强制说明某个类(或方法)应用场景以及缺陷,项目暴露出的功能和性能问题很多其实就是由于javadoc的自阐述性不够造成的,这是javadoc最大的败笔. JVM JRE JDK的关系 JVM:Java Virtual Machine —— 负责执行符合觃范癿Cl 阅读全文
posted @ 2018-08-29 16:24 xiaowater 阅读(329) 评论(0) 推荐(0)
摘要: 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。 SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容。如果 阅读全文
posted @ 2018-08-29 16:24 xiaowater 阅读(224) 评论(0) 推荐(0)
摘要: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 性能问题:用代码生成代替反射 具体方法: Class<?> clazz = obj.getCla 阅读全文
posted @ 2018-08-29 15:34 xiaowater 阅读(142) 评论(0) 推荐(0)
摘要: 按照代理的创建时期,代理类可以分为两种。 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 动态代理:在程序运行时,运用反射机制动态创建而成。 动态代理与静态代理类对照的是动态代理类,动态代理类的字节码在程序运行时由Java反射机制动态 阅读全文
posted @ 2018-08-29 15:33 xiaowater 阅读(110) 评论(0) 推荐(0)
摘要: Example: @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) Example: @Documented @Retention(RetentionPolicy.RUNTIME) @Target( 阅读全文
posted @ 2018-08-29 15:33 xiaowater 阅读(107) 评论(0) 推荐(0)
摘要: Java 的 I/O 类库的基本架构分成四组: 基于字节操作的 I/O 接口:InputStream 和 OutputStream 基于字符操作的 I/O 接口:Writer 和 Reader 基于磁盘操作的 I/O 接口:File 基于网络操作的 I/O 接口:Socket 前两组是根据传输数据的 阅读全文
posted @ 2018-08-29 15:32 xiaowater 阅读(93) 评论(0) 推荐(0)
摘要: 主线程:main()方法。 线程分为:用户线程和守候线程(setDaemon)。 主线程:main()方法。 线程分为:用户线程和守候线程(setDaemon)。 阻止线程执行: 1、睡眠 Thread.sleep静态方法强制当前正在执行的线程休眠(暂停执行),以“减慢线程”。 线程睡眠的原因:线程 阅读全文
posted @ 2018-08-29 15:25 xiaowater 阅读(246) 评论(0) 推荐(0)
摘要: WebService是一种远程调用的一种方案,是一种解决跨平台、跨语言间分布式系统的整合方案(socket),没有严格的客户端和服务端得界定 RMI跟WebService区别: RMI的客户端和服务端都必须是java,webservice没有这个限制 webservice是在http协议上传递xml 阅读全文
posted @ 2018-08-29 15:16 xiaowater 阅读(91) 评论(0) 推荐(0)
摘要: gc垃圾回收,整理内存 垃圾回收器只知道释放那些new分配的内存。 用于处理那些不是java创建对象的内存。 对新生代的GC 是轻量级的GC (又叫 minor GC)速度很快,一般零点几秒就完成了。 对旧生代的GC 是重量级得GC (又叫 full GC)速度很慢。触发情况: 旧生栈 内存使用达到 阅读全文
posted @ 2018-08-29 15:15 xiaowater 阅读(196) 评论(0) 推荐(0)
摘要: 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。下面通过两个例子分别用Comparable和Comparator实现对User对象中年龄排序。 1.通过实现Comparable接口,根据User的年龄进行排序。 阅读全文
posted @ 2018-08-29 15:14 xiaowater 阅读(84) 评论(0) 推荐(0)
摘要: java线程安全的两个主要点:java的内存模型,java的线程同步机制。参考:http://www.iteye.com/topic/806990 浅谈java内存模型 java的内存模型的两个主要问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内存的。 浅谈j 阅读全文
posted @ 2018-08-29 15:13 xiaowater 阅读(110) 评论(0) 推荐(0)
摘要: Shallow Clone:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象 在运行时刻,Object中的clone()识别出你要复制的是哪一个对象,然后为此对象分配空间,并进行对象的复制,将原始对 阅读全文
posted @ 2018-08-29 15:10 xiaowater 阅读(71) 评论(0) 推荐(0)
摘要: ConcurrentHashMap是一个支持高并发的高性能的HashMap实现,它支持完全并发的读以及一定程度并发的写,其关键在于使用了锁分离技术。 内部结构: 原理: ConcurrentHashMap定位一个元素的过程需要进行两次Hash操作,第一次Hash定位到Segment,第二次Hash定 阅读全文
posted @ 2018-08-29 15:09 xiaowater 阅读(100) 评论(0) 推荐(0)
摘要: 内置锁synchronized 显式锁Lock 1.ReentrantLock功能性方面更全面,比如时间锁等候,可中断锁等候,锁投票等,因此更有扩展性。在多个条件变量和高度竞争锁的地方,用ReentrantLock更合适,ReentrantLock还提供了Condition,对线程的等待和唤醒等操作 阅读全文
posted @ 2018-08-29 15:08 xiaowater 阅读(112) 评论(0) 推荐(0)
摘要: Class的装载分了三个阶段,loading,linking和initializing。 Class.forName(className) 实际上是调用Class.forName(className, true, this.getClass().getClassLoader())。 注意第二个参数, 阅读全文
posted @ 2018-08-29 15:08 xiaowater 阅读(70) 评论(0) 推荐(0)
摘要: Map接口: | + -- WeakHashMap: 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条 | 目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终 | 止,然后被回收。丢弃某 阅读全文
posted @ 2018-08-29 15:08 xiaowater 阅读(131) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-08-29 15:07 xiaowater 阅读(88) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-08-29 15:06 xiaowater 阅读(75) 评论(0) 推荐(0)
摘要: 常识: 1、JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个对象,一个线程获取这个引用指向的对象,那么他们之间不会发生ConcurrentModificationException,他们是在虚拟机层面阻塞的,而且速度非常快,几乎不需要CPU时间。 2、JAVA中两个 阅读全文
posted @ 2018-08-29 15:03 xiaowater 阅读(79) 评论(0) 推荐(0)

导航