JAVA基础
灿若繁星
这个作者很懒,什么都没留下…
展开
-
推荐一款好用的Java表达式执行引擎
最近在项目中需要根据不同的条件来做走不同分支的逻辑,那么就需要动态判断条件表达式结果(不想写一堆if else),研究了一番,发现了一个轻量级的Java表达式执行引擎:aviator,整个使用下来挺简单高效的,今天推荐给大家,下面介绍啊一下这款框架!二.aviator简介Aviator是一个轻量级、高性能的Java表达式执行引擎, 它动态地将表达式编译成字节码并运行,主要用于各种表达式的动...原创 2020-02-23 20:35:58 · 4450 阅读 · 0 评论 -
java BigDecimal :注意,这是你可能会踩到的坑
在BigDecimal 应用的过程中,有两个坑是我们比较容易遇到的,使用不当会出现莫名其妙的错误。1.构造函数的坑先看下面这段代码:public void constructTest(){ BigDecimal value1 =new BigDecimal(10.511); System.out.println("value1: " + value1); BigDecimal va原创 2017-08-06 15:23:19 · 31995 阅读 · 3 评论 -
设计模式系列(2)---单例模式解析与应用
单例模式是一种对象创建模式,它用于产生一个唯一的对象具体实例,可以节省常用对象频繁创建的开销,也能减轻GC的压力。在实际开发和框架中有很多应用。原创 2015-12-26 11:31:37 · 642 阅读 · 0 评论 -
设计模式系列(1)---观察者模式解析与应用
在实际开发中,有时候会遇到多个不同类依赖某个目标类的情况,当目标类发生发生变化时,依赖目标类的其他类也要做出相应的调整,若要目标类和依赖类之间松耦合,则可以应用观察者模式。1.什么是观察者模式 Head First设计模式是这样定义的:观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监听一个主题对象。这样一来,当被观察者状态发生改变时,需要通知相应的观察者,使这些观察者对象能够自动更原创 2015-12-25 07:44:21 · 660 阅读 · 0 评论 -
HashMap笔试面试题汇总解析
在笔试和面试的过程中,Java集合框架毫无疑问是考察的重点,貌似面试官对这都情有独钟,而有关HashMap的考察更是重中之重和难点,一个小小的HashMap不仅能反应出你对Java集合的掌握程度,更能反映出面试者对数据结构的熟悉情况和设计数据结构的思维能力,很容易在这个问题上尴尬地看着面试官发呆,搞不好就拜拜了。根据个人对这个问题的理解和一些网上的资料在这里做个汇总解析,与各位共享。废话不多说,要...原创 2013-11-22 21:01:05 · 17979 阅读 · 2 评论 -
java线程的创建总结
Java线程的启动有三种方式,本文通过比较,对Java线程的启动方式和线程特点做个总结!1.继承Thread类创建线程 这种方式一般需要重写父类run方法,然后调用start()启动线程,实例如下public class Thread1 extends Thread{ public void run() { System.out.println("I am thread1"原创 2015-11-04 10:14:56 · 616 阅读 · 0 评论 -
ThreadLocal详解
1. ThreadLocal原理 ThreadLocal为每个线程创建一个对象副本,将对象共享转变为对象“独有”,从而避免多线程对象共享的问题,每个线程都可以独立的读写对象,而对其他线程没有影响。 ThreadLocal内部有一个ThreadLocalMap内部类,用于维持线程本地变量。下面是ThreadLocal get()方法源代码: public T get() {原创 2015-11-09 20:04:19 · 674 阅读 · 0 评论 -
java equals()和hashCode()重写总结
在实际开发中有时候会遇到需要比较同一个类的不同实例对象的场景,一般情况下继承自Object父类的equals()和hashCode()可以满足需求,但却不能满足所有的场景,比如只需要使用少数几个对象属性来判断比较是否是同一个对象,这时我们就需要自定义的equals()和hashCode()实现来进行重写覆盖Object中的方法。1. equals()方法重写注意事项 a. 自反性:对于原创 2015-06-18 22:12:31 · 1529 阅读 · 0 评论 -
java代理模式总结
Java代理模式根据代理类生成时间的不同,可以分为静态代理和动态代理,它如同中介机构,可以为目标类提供代理服务,以控制对对象的访问,目标类的任何方法在执行前都必须经过代理类,这样代理类就可以用来负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。这在实际开发和框架设计(如springAOP)中有着广泛的应用.静态代理 静态代理是指代理类在编译时生成,而动态原创 2014-10-18 14:13:28 · 1253 阅读 · 0 评论 -
走进JAVA虚拟机(二)-------Java虚拟机的内存管理
走进JAVA虚拟机(二) -------Java虚拟机的内存管理有这样一种说法:“C++认为内存管理太重要了,于是让程序猿们亲自管理,JAVA也认为内存管理很重要,于是不让程序员管理”。这句话反映出了Java和C++在内存管理实践方面有很大的区别-----Java是通过虚拟机自动管理内存,而C++需要显式管理内存的分配与回收,这样一来Java让程序员从内存管理中解脱原创 2013-12-04 20:50:22 · 841 阅读 · 0 评论 -
走进JAVA虚拟机(一) -------Java虚拟机的体系架构
走进JAVA虚拟机(一) -------Java虚拟机的体系架构说起Java这门语言,很多人都知道它具有跨平台的特性,真正做到了“一次编译,到处运行”。而Java能做到与具体平台的无关性则要归功于Java虚拟机,Java虚拟家如同一个翻译家,将同样的Java代码翻译成不同平台认同的相对应指令运行。那么这么一个能力超强的“翻译大家”又是如何工作的呢,我们先从Java虚原创 2013-12-01 21:37:28 · 906 阅读 · 0 评论 -
Java反射机制浅谈(一)
1.Java反射机制的基本概念反射就是把Java类中的各个成分映射为相应的Java类,通常一个类中包含构造器、字段和方法,在实际程序开发过程中有时需要在程序运行时动态获取类的有关信息,比如动态调用类的方法或者获取字段名称等。而Java反射机制对此提供了技术支持,使得程序可以在运行时构造任意一个类的对象,获得对象的属性,调用一个对象的方法和生成动态代理。Java反射机制通过JDK中的Java原创 2013-04-25 16:52:09 · 828 阅读 · 0 评论 -
反射的应用(1)---获取类中各成分的信息
1.通过反射获取有关构造器的信息常用的方法:getConstructors() 返回一个包含某些 Constructor 对象的数组,这些对象反映此Class 对象所表示的类的所有公共构造方法。getDeclaredConstructors() 返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法getModifiers() 整数形式原创 2013-04-27 11:18:08 · 833 阅读 · 0 评论