![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
ecliiipse
这个作者很懒,什么都没留下…
展开
-
Class.this与this
在阅读Java代码时,有时会看到Class.this的使用,这个用法多用在nested class(内部类)中当inner class(内部类)必须使用到outer class(外部类)的this instance(实例)时例:class Outer{ string data = "外部类"; public class Inner{ String data = "内部类"; p转载 2016-10-08 22:11:23 · 602 阅读 · 0 评论 -
通过反射破除类的封装性
大家都知道JAVA中为了保持类的封装性,往往用private修饰属性,然后public定义set和get方法;下面看一段代码,首先定义一个Book类:package pojo;/** * Created by ZhuHao on 2018/10/8 */public class Book { private String title; private doubl...原创 2018-10-09 21:09:30 · 428 阅读 · 0 评论 -
JAVA多线程案例之数字加减(生产者消费者模式)中遇到的问题
直接看一段代码,经典的生产者消费者模式,用多线程来实现数字的加减:package test;/** * Created by ZhuHao on 2018/10/14 */class Resource{ private int num = 0; private boolean flag = true; public synchronized void a...原创 2018-10-14 22:13:06 · 1031 阅读 · 2 评论 -
String类的两种实例化方式区别
废话不多说先看一段代码:/** * @author ZhuHao * @date 2018/10/2 10:11 */public class TestString { public static void main(String[] args) { String str1 = "Hello"; String str2 = "Hello";...原创 2018-10-02 10:59:21 · 254 阅读 · 0 评论 -
JAVA的类加载器
Class文件的认识大家都知道Java中程序是运行在虚拟机中的,我们平常用文本编辑器或者IDE编写的程序都是.java格式的文件,这是最基础的源代码,但是java虚拟机并不能直接识别,所以需要转换成.class文件,.class文件是字节码格式文件。 JAVA类加载流程JAVA系统自带有三个类加载器:BootstrapClassLoader 最顶层的加载类,主要加载核心库,%JRE...转载 2018-09-24 23:27:15 · 256 阅读 · 0 评论 -
JAVA中String类的hashCode方法
String中hashCode方法的实现源码如下:public int hashCode(){ int h = hash; if(h == 0 && value.length > 0){ char val[] = value; for(int i = 0; i < value.length; i++){ h = 31 * h +转载 2017-03-13 16:19:02 · 1890 阅读 · 0 评论 -
泛型
在泛型代码内部,无法获得任何有关泛型参数类型的信息。JAVA泛型是使用擦除来实现的,折意味着当你再使用泛型时,任何具体的类型信息都被擦除了,你唯一知道的就是你在使用一个对象。因此List<String>和List<Integer>在运行时事实上是相同的类型。这两种形式都被擦除成它们的“原生”类型,即List。转载 2016-10-31 16:34:32 · 202 阅读 · 0 评论 -
RTTI和反射
在Java中,我们如何在运行时识别类和对象的信息?有两种方法,一种是传统的RTTI,另一种是反射。RTTI: Run-Time Type Information有三种获取对象的方法:class TestClass{}TestClass testClass = new TestClass();Class c = Class.forName("TestClass");TestCla...转载 2016-10-08 17:32:28 · 274 阅读 · 0 评论 -
JAVA泛型extends和super
class Fruit{}class Apple extends Fruit{}class Jonathan extends Apple{}class Orange extends Fruit{}public class Test{ public static void main(String[] args){ List<? extends Fruit> flist =转载 2016-11-08 20:59:58 · 252 阅读 · 0 评论 -
String与StringBuilder连接字符串
String对象是不可变的,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。而最初的String对象则丝毫未动。不可变性会带来一定的效率问题。为String对象重载的“+”操作符就是一个例子(用于String的“+”与“+=”是Java中仅有的两个重载过的操作符,而Java并不允许程序员重载任何操作符)。操作符“+”原创 2016-09-27 00:11:59 · 1412 阅读 · 0 评论 -
Java动态代理
动态代理设计模式很可能在不知不觉中使用了,例如Spring中的AOP,Struts2中的拦截器等。 先来看静态代理模式代码:package test;/** * Created by ZhuHao on 2016/10/9. */public interface Subject { public void doSomething();}package test;/** * Cr转载 2016-10-09 15:54:02 · 195 阅读 · 0 评论 -
Spring @Autowired注解
Spring 通过 @Autowired注解来实现bean的自动装配。@AutowiredTestService testService;自动装配规则如下:1.先去容器中寻找TestService类型的bean(此时先不扫描testService字段);2.若找不到一个bean,抛出异常;3.若找到一个TestService类型的bean,自动装配,并把bean装配给...转载 2019-06-15 10:25:37 · 121 阅读 · 0 评论