近期用sonar測评代码质量的时候,发现一个问题,project中一些util类,曾经写的static方法都提示最好用单例的方式进行改正. 为此,我细致想了想,发现还是非常有道理的.这里谈谈我个人对static方法与单例模式的理解. 所谓单例模式,我不做过多解释,推荐java设计模式之禅这本书,好好理解一下. 这里我谈谈两种写法: 曾经一些公共的类,我不假思索,习惯依照例如以下写法去写: public class DateUtil { public final static String DAT…
有入参的static方法,可以正常使用 static的作用是申明:这是类的静态方法,什么时候都可以调用,可以传入入参,也可以不传. 上代码: 1.带静态方法的类: public class MakeParameters { public static InsuranceSearchRQ makeBaseRqParms(InsuranceSearchRQ rq){ ChannelInfo channel = new ChannelInfo(); channel.setFirstChannelNo(…
重写方法的目的是为了多态,或者说:重写是实现多态的前提,即重写是发生在继承中且是针对非static方法的. 语法上子类允许出现和父类只有方法体不一样其他都一模一样的static方法,但是在父类引用指向子类对象时,通过父类引用调用的依然是父类的static方法,而不是子类的static方法. 即:语法上static支持重写,但是运行效果上达不到多态目的 class Father { public static void staticMethod() { System.out.println("Fa…
单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关.也就说,如果static方法或者非static方法不是线程安全的,那么不会因为这个类使用了单例模式,而变的安全. 闲话休说,看代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class TestSingl…
Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void main(String[] args) { Class c1 = int.class;//int 的类类型 Class c2 = String.class;//String类的类类型,可以理解为String类字节码 Class c3 = double.class; Class c4 = Doubl…
先来看一段代码 /** * Created by bjchengpeng on 2018/7/19. */ /**运行结果 * woof * woofaa * * woof * Basenjiaa * * Basenji * Basenjiaa */ public class Bark { public static void main(String[] args) { Dog woofer = new Dog(); Dog nipper = new Basenji(); Basenji chi…
首先需要知道的是,java中所有的public实例方法都默认是virtual的,static方法不是virtual的,所以static方法可以被覆盖(new),但不可被重写(override) 1.被继承 父类: public class Parents{ public static void staticFunction(){ System.out.println("public static function of parents"); } public void callPrin…
1.Java parseInt()方法 使用此方法得到的原始数据类型的一个特定的字符串. parseXxx()是一个静态方法,可以有一个参数或两个. java parseInt() 语法: static int parseInt(String s) static int parseInt(String s, int radix) 参数:String s :表示是一个十进制字符串的表示形式 int radix: 表示将字符串转化为整数 例如:int c=Integer.parseInt("12…