- 浏览: 3015349 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
以前要在Java里实现所谓“静态工具类”(static utility class)的话,通常会做两件事:
1、把class声明为final,以免被继承;
2、声明一个private的空参数列表构造器,以免外部能创建该类的实例。
根据Java SE 8版的Java语言规范,9.4小节,现在Java 8允许在接口上声明静态方法了。接口默认而且必须是抽象的,所以不能用final来阻止别人继承或实现这个接口,不过反正是抽象的也不能直接实例化,用来做静态工具类挺好的。
所以现在可以这样了:
多一种选择
这些类的方法,不用new就可以直接使用,一般是工具才这么干
Spring中有大量这样的例子
没啥特别的好处。就是多种选择,可以把某些代码写短一点而已。
您说的是类似C#的static class…是啊有那个的话多好。但是Java非要坚守面向对象所以不提供这种语言结构(但Java其实又已经不很OO了…)。
1、把class声明为final,以免被继承;
2、声明一个private的空参数列表构造器,以免外部能创建该类的实例。
根据Java SE 8版的Java语言规范,9.4小节,现在Java 8允许在接口上声明静态方法了。接口默认而且必须是抽象的,所以不能用final来阻止别人继承或实现这个接口,不过反正是抽象的也不能直接实例化,用来做静态工具类挺好的。
所以现在可以这样了:
package my.util; public interface StringUtils { /* 默认public */ static boolean endsWith(String str, String suffix) { // ... } }
多一种选择
评论
7 楼
奔跑的小牛
2016-11-08
swb3386775 写道
问个小白点的问题。
静态工具类一般用来干嘛?
静态工具类一般用来干嘛?
这些类的方法,不用new就可以直接使用,一般是工具才这么干
6 楼
demondevilhades
2016-01-07
为了避免外部能创建该类的实例,还在构造器里面扔一个Exception出来
5 楼
swb3386775
2015-01-08
问个小白点的问题。
静态工具类一般用来干嘛?
静态工具类一般用来干嘛?
4 楼
zxmzfbdc
2014-04-09
subchen 写道
经常这么干:
public abstract class StringUtils { public static boolean endsWith(String str, String suffix) { } }
Spring中有大量这样的例子
3 楼
subchen
2014-04-09
经常这么干:
public abstract class StringUtils { public static boolean endsWith(String str, String suffix) { } }
2 楼
RednaxelaFX
2014-03-26
zxmzfbdc 写道
不清楚这么做有什么好处,接口的作用变得复杂了。还不如再顶一个别的什么东西,不同于类,也不同于接口,就是供静态调用的。
没啥特别的好处。就是多种选择,可以把某些代码写短一点而已。
您说的是类似C#的static class…是啊有那个的话多好。但是Java非要坚守面向对象所以不提供这种语言结构(但Java其实又已经不很OO了…)。
1 楼
zxmzfbdc
2014-03-25
不清楚这么做有什么好处,接口的作用变得复杂了。还不如再顶一个别的什么东西,不同于类,也不同于接口,就是供静态调用的。
发表评论
-
The Prehistory of Java, HotSpot and Train
2014-06-02 08:18 0http://cs.gmu.edu/cne/itcore/vi ... -
MSJVM and Sun 1.0.x/1.1.x
2014-05-20 18:50 0当年的survey paper: http://www.sym ... -
Sun JDK1.4.2_28有TieredCompilation
2014-05-12 08:48 0原来以前Sun的JDK 1.4.2 update 28就已经有 ... -
IBM JVM notes (2014 ver)
2014-05-11 07:16 0Sovereign JIT http://publib.bou ... -
class data sharing by Apple
2014-03-28 05:17 0class data sharing is implement ... -
Java 8的default method与method resolution
2014-03-19 02:23 10330先看看下面这个代码例子, interface IFoo { ... -
HotSpot Server VM与Server Class Machine
2014-02-18 13:21 0HotSpot VM历来有Client VM与Server V ... -
Java 8的lambda表达式在OpenJDK8中的实现
2014-02-04 12:08 0三月份JDK8就要发布首发了,现在JDK8 release c ... -
GC stack map与deopt stack map的异同
2014-01-08 09:56 0两者之间不并存在包含关系。它们有交集,但也各自有特别的地方。 ... -
HotSpot Server Compiler与data-flow analysis
2014-01-07 17:41 0http://en.wikipedia.org/wiki/Da ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22250(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21735之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ... -
Java的instanceof是如何实现的
2013-09-22 16:57 0Java语言规范,Java SE 7版 http://docs ... -
oop、klass、handle的关系
2013-07-30 17:34 0oopDesc及其子类的实例 oop : oopDesc* ... -
Nashorn各种笔记
2013-07-15 17:03 0http://bits.netbeans.org/netbea ... -
《深入理解Java虚拟机(第二版)》书评
2013-07-08 19:19 0值得推荐的中文Java虚拟机入门书 感谢作者赠与的样书,以下 ... -
豆列:从表到里学习JVM实现
2013-06-13 14:13 48107刚写了个学习JVM用的豆列跟大家分享。 豆列地址:http: ... -
hotspot: print heap layout
2013-05-28 10:46 0VM vm = VM.getVM(); CollectedH ...
相关推荐
java 生成静态页面 工具类java 生成静态页面 工具类
可能是最全的Redis静态工具类,拿来即用,随时随地RedisUtils.方法名()存取数据,每个方法都有对应的注释,快速上手!
腾讯云对象存储静态工具类,满足日常工作使用,每个方法都有注释,快速上手!记得先引入Maven依赖,在配置文件中配置对象存储所属参数!
根据官网和网上分享的代码自己整理了一个阿里云OSS工具类,自动创建标准公开权限的存储空间,支持上传图片,音频,视频,PDF各种文件,批量上传,上传后支持在线预览,文件路径处理,浏览器文件下载(支持源文件中文...
java连接SqlServer完整代码,工具类,jdbc JDBC工具类的构建 1.资源释放 见https://mp.csdn.net/postedit/86577443 2.驱动防二次注册 ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //...
工具类,顾名思义,就是使用的工具,哪里有需要就往哪里添加它,当遇到非静态的工具类,调用的时候还要去new一下。 用static修饰的都是属于类成员,类成员可以直接调用的,不是用static修饰的,必须使用类的对象去...
在Java开发类库中,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...
java开发工具类MD5加密算法-静态单例。
SHA256Util 是一个 Java 工具类,提供静态方法 getSHA256 来计算字符串的 SHA-256 散列值。这个类利用 Java 的 MessageDigest 类,将输入字符串转换成十六进制格式的散列值。 适用人群 软件开发人员需要在应用程序...
在这个文件中,可以像 Java 中的静态方法一样,定义函数或类方法,只需在函数名或方法名前加上 @staticmethod 或者不加,即可定义成静态方法,无需实例化相关对象即可直接调用。 在 Python 中,可以使用模块(Module...
一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件: 在开发的过程中,我们需要一些工具类实现某些特殊处理,例如字符串格式处理,日期...
Lru缓存 需要仔细研究 一种高效率的缓存设置机制
自己总结的java工具类,包括异常、文件、字符串、时间、http、搜索、进程、poi、反射、邮件、静态页面、spring、redis、权限递归、加解密,签名、校验码、json等等
NULL 博文链接:https://jayxigua.iteye.com/blog/686371
压缩包内为java源码,是封装好的一个工具类,类中提供了多重载的静态方法,包过生成二维码和读取二维码,可以选择二维码大小和生成目录或流的形式,可以存本地,也可以通过方法直接返回给前端
分布式系统,全局唯一ID,高效,永不重复。相比较uuid,雪花id是按照时间有序生成的,方便sql优化
* 静态工厂方法 * @return 返还ReadConfigation 类的单一实例 */ synchronized public static ReadConfigation getInstance() { return m_instance; } /** * 读取一特定的属性项 * * @param ...
我测试了一个前端时间开发的一个网络通讯工具,其中用到了很多java15的特性,例如泛形,增强循环,静态引入等功能,以及jdk15独有的类文件,例如StringBuilder等。通过该工具进行转换,可以完美的运行在java14环境...
可以帮助完成测试计划、跟踪测试运行结果等的工具。这类工具还包括有助于需求、设计、编码测试及缺陷跟踪的工具
MarkDown文档,大家应该都知道,@Value注解可以给类中的非静态变量注入值,但是给静态变量注入值则会有警告,结果是失败的,本文档说明了如何使用@Value注解给类的静态变量赋值