【Java】——积累与发现

Java迭代 : Iterator和Iterable接口
Iterator、Iterable接口的使用及详解

简单说,如果当前一个A对象维护了一个B数组,那么A类如果要实现迭代,其要实现Iterator<B>接口,next方法返回的是一个B类对象,或者实现Iterable<B>接口,iterator方法返回的也应该是一个Iterator<B>对象

JVM(Java虚拟机)参数优化大全和案例实战
windows 中 到底是用的哪个java.exe??? 删除了PATH变量的Java设置还是可以运行java.exe windows/system32
Eclipse中如何快速查看jar包中的class源码
最常用的15大Eclipse开发快捷键技巧
Intellij IDEA 添加jar包的三种方式
Java将对象保存到文件中/从文件中读取对象
Java中getResourceAsStream的用法
eclipse的配置详解和代码的格式详解Ctrl+Shift+F格式化内容设置
JavaDoc生成API详解
javadoc注释规范
eclipse中设置JVM内存
调试的小知识:单步执行命令stepinto/stepout/stepover的区别
java的动态代理机制详解(内容有瑕疵,23楼指正)
InvocationHandler中invoke方法中的第一个参数proxy的用途

import java.io.Serializable;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/**
 * Created by IntelliJ IDEA.
 * User: MessengerOfSpring
 * Date: 2017/12/3
 * Time: 21:39
 */
public class Main {
    private interface Account {
        public Account deposit (double value);
        public double getBalance ();
    }
    private class ExampleInvocationHandler implements InvocationHandler {
        private double balance;
        @Override
        public Object invoke (Object proxy, Method method, Object[] args) throws Throwable {
            // simplified method checks, would need to check the parameter count and types too
            if ("deposit".equals(method.getName())) {
                Double value = (Double) args[0];
                System.out.println("deposit: " + value);
                balance += value;
                return proxy; // here we use the proxy to return 'this'
            }
            if ("getBalance".equals(method.getName())) {
                return balance;
            }
            return null;
        }
    }
    public static void main(String[] args) {
        new Main();
    }
    Main() {
        Account account = (Account) Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] {Account.class, Serializable.class},
                new ExampleInvocationHandler());
// method chaining for the win!
        account.deposit(5000).deposit(4000).deposit(-2500);
        System.out.println("Balance: " + account.getBalance());
    }
}

泛型继承的几种写法
Java并发编程:volatile关键字解析
Java之JUnit4的学习
java中javaBean与Bean的深入理解
Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
idea打包java可执行jar包

extract就是把依赖包打入一个jar里 copy to output directory…就是把依赖包拆出来分别作为单独的jar放在输出路径里

运行jar包时读取jar里面的文件
MANIFEST.MF文件详解
DecimalFormat使用心得
getResource和getResourceAsStream
5.x版本的jdbc连接mysql用法
8.x版本的jdbc连接mysql注意事项
JDBC8.011连接数据库 3个小改动
jdbc连接mysq之serverTimezone设定
关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)

猜你喜欢

转载自blog.csdn.net/dominic_z/article/details/88615482