有关java有趣的技术

  • [JXTA 2: 具有高性能、海量伸缩性的 P2P 网络](java p2p通信 框架)

  • 主流浏览器内核有哪几种?

  • javaDb 一个jar就可以的嵌入式数据库。[用作配置文件,数据库的选择]

  • Java的三种事务详解: JDBC事务、JTA(Java?Transaction API)事务-分布式事务、容器事务-ejb容器已死

  • Java Caching(缓存)-策略和JCache API >> 缓存接口JCache API已在j2ee8支持了。

  • apache-commons-pool >> 对象池。

  • Java动态代理:JDK 和CGLIB、Javassist、ASM之间的差别 (详细) >> CGLIB动态代理 , Javassist源代码(setBody(str,src,zz)) , ASM字节码

  • Java热部署与热加载原理

    但是这种方式却使加载顺序非常难改变,让自定义 classloader 抢先加载需要监听改变的类成为了一个难题。
    不过我们可以换一个思路,虽然无法抢先加载该类,但是仍然可以用自定义 classloader 创建一个功能相同的类,让每次实例化的对象都指向这个新的类。
    当这个类的 class 文件发生改变的时候,再次创建一个更新的类,之后如果系统再次发出实例化请求,创建的对象讲指向这个全新的类。
    使用 JavaAgent 拦截默认加载器的行为 – 代理tomcat容器的加载器了。
    滚动更新,热部署(局部热加载)也就实现了。
    总之需要破坏双亲委托模式,

    1. tomcat底层自下往上加载
    2. osgi网状加载(模块化)
  • Java动态编译技术原理

    1. 这里可以Groovy语言的解释性。
    2. 规则配置器。
    3. 为编译的源码加代理。
    4. 文档
      • https://blog.csdn.net/u013335025/article/details/82021328
      • https://blog.csdn.net/wangjian530/article/details/83449067
      • https://www.cnblogs.com/demo111/p/4518137.html
      • http://www.360doc.com/content/17/1120/08/9200790_705450580.shtml
      • https://blog.csdn.net/zhongweijian/article/details/7619396
      • https://blog.csdn.net/pkuyjxu/article/details/8609457
      • https://blog.csdn.net/m_hahahaha1994/article/details/51657969 被编译Java文件所依赖的源文件所在的目录
      • https://blog.csdn.net/myfmyfmyfmyf/article/details/53179395 cmd命令javac运行类(依赖jar包),解决依赖jar问题。
  • WebIDE 开源 或者 Eclipse Che

    1. Web端编程,无需开发环境。
  • 多线程

  • netty网络编程

  • classLoader使用的2种方式,new和反射

    ClassLoader那事儿 原理
    Java类加载器ClassLoader总结 JAVA类装载方式,有两种: 原理和场景
    Java 类加载体系与ContextClassLoader tomcatClassLoad的实现
    Tomcat自定义classLoader加密解密
    class很好反编译,所以需要对class文件先进行加密,然后使用自己的classloader进行解密并加载。
    代替new关键字,

  • Java如何获取当前的jar包路径以及如何读取jar包中的资源

  • Java获取class/jar包路径的方法
    日志 : 用户选中是否可以分析(用户隐私,系统资源),系统开关是否长期存储(跟踪偶现的bug), 系统开关(一次交易(可能跨服务),某包下的)。

    1. uuid在发送时就添加。可能跨服务和多线程。
    2. 系统开关-某包下的日志输出,优先级最高0。
    3. 系统开关-支持长期存储,优先级1
    4. 用户选中-是否可以分析,优先级2
      配置 : 默认和用户。
    基础配置修改配置系统jar的实现类。
	不使用这个map.get(key,value);
	用这个s = map.get(key);
	if( s == null){
		...加载后在
	}
	或者的时候
	加载2个配置文件,覆盖系统的 key 和 value

类加载 : ASM字节码 和 AOP 问题
实例化 : IOC 和 工厂模式
异常 : 统一处理。

你可能感兴趣的:(工具,Ĵava,任职公司)