- 浏览: 251388 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (282)
- 常用-笔记 (9)
- 2012-2013开发整理 (19)
- 2017前-开发整理 (38)
- 2017-开发整理【前端】 (2)
- 数据库 (25)
- 数据库_Oracle (35)
- 数据库_MySql (4)
- 数据库_Sybase (30)
- 数据库_Oracle ERP (4)
- java 应用 (23)
- java_xml解析 (7)
- java_反射 (0)
- Java_多线程 (0)
- java_socket (0)
- 前端_CSS样式 (3)
- 前端_JavaScript (29)
- 前端_jQuery 应用 (11)
- 前端_jQuery EasyUI (2)
- 开源_SSH框架应用 (18)
- 开源_spring (0)
- 开源_springMVC (0)
- 开源_MyBatis (0)
- 架构_01. SOA_webService (8)
- 架构_02. 搜索引擎_Solr (0)
- 架构_03. redis (0)
- 架构_04. mongodb (2)
- 架构_05. 设计模式 (0)
- 架构_06. 缓存机制 (0)
- 架构_07. 身份认证 (0)
- 架构_08. 单点登录 (0)
- 架构_09. JMS消息机制 (0)
- 架构_10. 工作流 (0)
- 架构_11. 日志 (1)
- 架构_12. 数据库-设计 (1)
- 架构_13.分布式架构 (1)
- web_C标签 (4)
- web中间件 (6)
- 综合技术 (4)
- 管理_maven (3)
- 管理_软件项目管理 (17)
- 思考_程序人生 (16)
- 资源_网站 (2)
- 其他 (1)
- Eclipse基本配置 (3)
- 2017-18 (8)
- Linux (1)
- 数字计算 (3)
- 微信开发 (0)
最新评论
-
masuweng:
JavaScript 动态表格增加、删除、行金额计算、合计 -
xxwozixin:
迷茫中在iteye上搜索“程序员的第一个五年规划”结果看到了这 ...
我的中兴五年生活
java常用类解析一:System类、Object类、Arrays类、Cloneable接口
<span style="font-size:16px;">package test; public class SystemDemo { public static void main(String[] args) { String[] s = new String[] { "liu" }; String[] s2 = new String[] { "hai" }; String[][] a = { s, s2, s, s, s, s2, s2, s }; String[][] b = new String[10][10]; /* * System类包含一些有用的类字段和方法,是final类,无法被继承,构造方法是private,不能创建System对象。 * 所有public属性和方法都是final static */ // 1.数组复制,采用本地方法复制,实现了深拷贝 System.arraycopy(a, 1, b, 0, 5); System.out.println(b[0][0]); // 2.已经过去的毫米数,从1970-1-1开始 System.currentTimeMillis(); // 3.提示虚拟机进行垃圾回收,通过调用Runtime.getRuntime().gc();实现 System.gc(); // 4.返回系统环境 System.getenv(); // 5.返回当前的系统属性。 System.getProperties(); // 6.可用於計數已過去的時間 System.nanoTime(); // 7.0表示正常退出,調用Runtime.getRuntime().exit(0); System.exit(0); // 8.返回给定对象的哈希码,该代码与默认的方法 hashCode() 返回的代码一样,无论给定对象的类是否重写 hashCode()。 System.identityHashCode(null); } } </span>
<span style="font-size:16px;">package test; public class ObjectDemo { /* * 1.Object没有public 的静态属性和方法 * 2.public final native Class<?> getClass()返回运行时类信息, * 3.toString 返回类名+@+哈希码值 * 4.其中wait和notify方法是final的,不可继承 * 5.equals方法只比较对象的引用,hashCode方法返回哈希码值。 * 6.重写equals方法要重写hashCode,因为相同的对象(通过equals比较返回true) * 必须返回相同的哈希码。 * 7.finalize方法是一个protected空方法 * 8.protected native Object clone()返回一个副本,对象必须实现Cloneable接口 */ } </span>
<span style="font-size:16px;">package test; import java.util.Arrays; public class ArraysDemo { /* * 1.数组类提供了排序功能,对基本数据类型length<7采用直接插入排序,否则采用快速排序 如果数组元素时对象,采用合并排序 * 2.提供二分查找法实现,注意二分查找时先对数组进行排序,否则返回一个不确定值 */ public static void main(String[] args) { int[][] a = { { 1, 2 } }; int[][] b = { { 1, 2 } }; System.out.println(Arrays.toString(a)); // 3. 多维数组的toString System.out.println(Arrays.deepToString(a)); System.out.println(Arrays.hashCode(a)); System.out.println(Arrays.deepHashCode(a)); System.out.println(Arrays.equals(a, b)); // 4. 多维数组的比较 System.out.println(Arrays.deepEquals(a, b)); // 5. 并没有实现多维数组的复制 int[][] c = Arrays.copyOf(a, 1); // 6.填充数组 Arrays.fill(a[0], 5);// 在此改变a的值影响到了数组c的值 System.out.println(Arrays.deepToString(c)); System.out.println(Arrays.equals(a, c)); System.out.println(Arrays.deepEquals(a, c)); } } </span>
<span style="font-size:16px;">package test; public class DeepCloneDemo { public static void main(String[] args) { B b = new B(2, new A(1)); B b1 = (B) b.clone(); System.out.println(b == b1); System.out.println(b.equals(b1)); System.out.println(b.getClass() == b.getClass()); System.out.println("改变b的副本b1前:y=" + b.getY() + ",x=" + b.getA().getX()); b1.setY(5); b1.getA().setX(100); System.out.println("改变b的副本b1后:y=" + b.getY() + ",x=" + b.getA().getX()); System.out.println("深克隆成功!!!"); } } class A implements Cloneable { private int x; // 为了实现深克隆 public Object clone() { A a = null; try { a = (A) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return a; } public A(int x) { this.x = x; } public int getX() { return x; } public void setX(int x) { this.x = x; } } class B implements Cloneable { private int y; private A a; // 覆盖Object中clone方法 // protected native Object clone() throws CloneNotSupportedException; // 注意到protected,这里把权限改为了public public Object clone() { B b = null; try { b = (B) super.clone(); // 实现深克隆,没有这条语句只是克隆了a的引用 b.a = (A) a.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return b; } public B(int y, A a) { this.y = y; this.a = a; } public int getY() { return y; } public A getA() { return a; } public void setY(int y) { this.y = y; } public void setA(A a) { this.a = a; } } </span>
发表评论
-
JavaWeb中监听器+过滤器+拦截器
2018-09-06 21:58 486JavaWeb中监听器+过滤器+拦截器区别、配置和实 ... -
Bigdecimal 保留小数位
2018-07-20 17:01 450Bigdecimal 保留小数位 ... -
BigDecimal 相关计算
2018-07-20 16:58 440BigDecimal计算 import jav ... -
Java使double保留两位小数的多方法 Java保留两位小数
2018-07-20 14:49 484Java使double保留两位小数的多方法 Java保留两位 ... -
BigDecimal的加减乘除及比较大小
2018-07-19 17:11 429BigDecimal的加减乘除及比较大小 ... -
java中Object转换成int或String类型方法
2018-04-28 14:38 884... -
java 四舍五入保留小数
2017-12-28 17:09 435java 四舍五入保留小数 // 方式一: double ... -
打JAR包
2012-07-03 12:04 6731. 手工打Jar包: 用这个命令:jar -cvf ... -
用java调用oracle存储过程总结
2012-06-07 15:28 742一:无返回值的存储 ... -
java String与Date类型之间的相互转换
2012-02-01 18:50 772java String与Date类型之间的相互转换 pa ... -
Java中获取日期函数应用
2012-01-19 23:56 1613Java中常用的日期获取函数的应用: (1)String ... -
计算离当前日期之前或之后任意天的日期
2012-01-19 23:39 875计算离当前日期之前或之后任意天的日期: /** * 日 ... -
java常用类解析六:IO系统文件读写工具类
2014-07-06 16:54 941几个文件读写的工具类:文本文件读写、二进制文件读写 ... -
java常用类解析五:IO系统File类及文件搜索工具类
2011-11-01 01:01 8191、先看一个File类的简单的例子import java.io ... -
java常用类解析四:I/O流典型使用方式
2011-11-01 00:56 737例子: package http; im ... -
java常用类解析三:IO系统装饰类
2011-11-01 00:51 772java IO系统采用装饰器模式,用一些装饰类来装饰输入输出来 ... -
java常用类解析二:IO系统输入输出类
2011-11-01 00:46 836InputStream的作用是用来表示那些从不同数据源 ... -
java反射例子
2011-01-19 21:27 722java反射例子: 1.创建接口类 package ... -
java动态代理
2011-01-19 21:23 706java动态代理实现方式: 1. 创建接口 pack ... -
java静态代理
2011-01-19 21:16 690java静态代理实现: 1.创建接口 packa ...
相关推荐
主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...
#### 第十一章:Java常用类库 - **StringBuffer类** - StringBuffer类的特点:线程安全的可变字符序列。 - StringBuffer类的常用方法:append、insert等。 - **Runtime类(单态)** - Runtime类的作用:获取与运行...
Java中的`Object`类是所有类的根,无论是自定义的还是Java库中的类,它们都直接或间接地继承自`Object`。`Object`类提供了许多基础方法,这些方法对于理解和操作对象至关重要。在本知识块中,我们将深入探讨`Object`...
`Cloneable` 是一个标记接口,它不包含任何方法,其主要目的是表明实现该接口的类可以通过调用 `Object.clone()` 方法来进行对象克隆。由于 `clone()` 方法是受保护的,因此实现 `Cloneable` 接口的类需要重写该方法...
常用接口有Comparable、Serializable、Cloneable等。 20. 类的反射机制 反射机制允许程序在运行期间访问和操作类、方法、接口等的内部信息。 21. 如何唤起类中的一个方法? 使用java.lang.reflect.Method类的...
15.3 java.util.Arrays类 236 15.4 java.util.StringTokenizer类 238 15.5 java.util.Calendar类 240 15.6 巩固练习 242 第16章 AWT程序设计 244 16.1 java.awt.Component类 244 16.2 java.awt....
- 自Java 5起,`java.util.Arrays`类提供了`copyOf()`方法,它也能用于复制数组。对于基本类型数组,这是与`System.arraycopy()`等价的,而对于对象数组,它同样执行浅拷贝。 ```java int[] original = {1, 2, 3,...
【JAVA容器试题解析】 一、不定选择题 1. Java 容器框架主要分为 Collection 和 Map 两种。其中,Collection 又分为A、List,B、Set,C、Queue,D、以上都是。答案:D。 2. 以下哪一个是线程安全的:A、Vector,B...
在Java集合框架中,`ArrayList`是一个非常重要的类,它实现了`List`接口,并提供了基于动态数组的数据结构。本篇将详细分析`ArrayList`的源码,帮助读者理解其内部实现机制。 #### 类定义 ```java public class ...
System.arraycopy 是 Java 中最常用的数组复制方法。它可以将源数组的元素复制到目标数组中。该方法的参数包括源数组、源数组中的起始位置、目标数组、目标数组中的起始位置和要复制的元素数量。 public static ...
这是Java util.Arrays类提供的一个便利方法,它创建一个新的数组,其内容与指定数组相同。性能介于`System.arraycopy()`和`for`循环之间。 ```java arr2 = Arrays.copyOf(arr, length); ``` 4. **使用clone()方法...
ArrayList是Java集合框架中的一种重要实现,它是List接口的一个具体类,提供了动态数组的功能。ArrayList在内部使用一个Object类型的数组来存储元素,因此它支持快速的随机访问,这是由其实现了RandomAccess接口所...