- 浏览: 3048875 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (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 10451先看看下面这个代码例子, 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 22393(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 21873之前有同学在做龙书(第二版)题目,做到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 48364刚写了个学习JVM用的豆列跟大家分享。 豆列地址:http: ... -
hotspot: print heap layout
2013-05-28 10:46 0VM vm = VM.getVM(); CollectedH ...
相关推荐
java 生成静态页面 工具类java 生成静态页面 工具类
可能是最全的Redis静态工具类,拿来即用,随时随地RedisUtils.方法名()存取数据,每个方法都有对应的注释,快速上手!
在静态工具类中,使用了public static的成员变量来存储配置信息,使用非静态的set方法将配置信息注入到成员变量中。其他类可以通过公有的静态get方法来获取这些配置信息。 在上面的代码中,使用了MongoConfig类来...
Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...
腾讯云对象存储静态工具类,满足日常工作使用,每个方法都有注释,快速上手!记得先引入Maven依赖,在配置文件中配置对象存储所属参数!
静态方法通常是 public 的,作为工具类的工具方法出现。 例如: ```java public class StaticExample { public static void setCount(int count) { if (count > 0) { StaticExample.count = count; } } ...
根据官网和网上分享的代码自己整理了一个阿里云OSS工具类,自动创建标准公开权限的存储空间,支持上传图片,音频,视频,PDF各种文件,批量上传,上传后支持在线预览,文件路径处理,浏览器文件下载(支持源文件中文...
在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...
首先,工具类通常包含静态方法,这些方法不依赖于类的实例,可以直接调用,减少了对象创建的开销。这些类通常以“Utils”或“Helper”结尾,如Apache Commons Lang中的StringUtils、ArraysUtils等,它们提供了字符串...
java连接SqlServer完整代码,工具类,jdbc JDBC工具类的构建 1.资源释放 见https://mp.csdn.net/postedit/86577443 2.驱动防二次注册 ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //...
创建JavaMail工具类时,可以考虑将常见的邮件操作封装为静态方法,如`sendEmail(String from, String to, String subject, String body)`,这样方便其他模块调用。 12. **测试和调试**: 开发完成后,应进行充分...
### Java静态内部类(嵌套类)详解 #### 一、静态内部类概念与特性 在Java编程语言中,静态内部类(也被称为嵌套类)是一种特殊的内部类形式,它通过`static`关键字来定义。与普通内部类相比,静态内部类具有以下...
在Java中,工具类通常是封装了常见操作的静态方法集合,便于开发者在不同项目中复用。本资源包含了一系列全面的Java工具类,涵盖了多个核心领域,如日期处理、字符串操作、文件管理、XML和JSON解析以及HTTP请求等。 ...
这个“Java Https工具类,Java Https Post请求”可能是一个自定义的类,用于简化发送HTTPS POST请求的过程。以下是对这个主题的详细讲解: 1. **HTTPS基础**: - HTTPS是在HTTP上添加了SSL/TLS(Secure Sockets ...
在Java编程领域,工具类(Utility Class)是包含各种实用函数的静态类,它们提供了一种简化编程任务的方式。以下是对标题和描述中提到的一些常用Java工具类的详细解释: 1. **数据库池工具类**:数据库连接池是管理...
在Java编程中,工具类(Utility Class)是包含静态方法的类,这些方法通常执行某种通用操作或提供一些辅助功能。这些工具类可以极大地提高代码的可读性和可重用性,减少代码冗余,使得开发者能更专注于业务逻辑。在...
在这个名为"牛逼的java常用工具类"的压缩包中,我们可以期待找到一些由经验丰富的开发者精心设计和优化的工具类,这些工具类能极大地提高开发效率,减少代码量,使程序更加健壮。下面,我们将详细探讨一些可能包含在...
在Java编程中,工具类(Util Classes)是包含各种实用方法的静态类,它们提供了一种简化常见任务的方式。"java常用工具类封装"是指将常见的功能如线程管理、数据解析、第三方库集成等进行封装,以提高代码的可重用性...
Java后台微信支付工具类是开发微信App支付时不可或缺的一部分,它包含了处理支付请求、响应以及与微信支付服务器交互的关键逻辑。微信支付是一个安全且广泛使用的支付方式,它允许用户通过微信应用程序进行线上交易...
在Java中,工具类通常包含静态方法,不涉及实例化,它们提供的功能包括但不限于字符串处理、日期时间操作、集合操作、数学计算、IO流处理、网络通信等。下面将对这些常见的工具类及其功能进行详细介绍: 1. **...