`
lorry1113
  • 浏览: 263152 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java常用类(转)收藏

    博客分类:
  • java
阅读更多


java.applet包含一些用于创建java小应用程序的类。
java.awt包含一些用于编写与平台无关的图形界面(GUI)应用程序的类。
java.io包含一些用作输入输出(I/O)处理的类。
java.lang包含一些java语言的基本类与核心类,如String Math Integer System Runtime
提供常用的功能,这个包中的所有类是被隐式导入的。
java.net包含用于建立网络连接的类,与java.io同时使用完成与网络有关的读写。
java.util包含一些实用工具类和数据结构类。
String
java.lang.String
public final class String 不能再有派生类。
String 对象是不可变的,所以可以共享它们。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
下面给出了一些如何使用字符串的更多例子:
      System.out.println("abc");
      String cde = "cde";
      System.out.println("abc" + cde);
      String c = "abc".substring(2,3);
      String d = cde.substring(1, 2);
String 类包括的方法有:检查序列的单个字符;比较字符串;搜索字符串;提取子字符串;创建字符串副本,在该副本中,所有的字符都被转换为大写或小写形式。大小写映射基于 Character 类指定的 Unicode Standard 版本。
substring()
"hamburger".substring(4, returns "urge"
"smiles".substring(1, 5) returns "mile"
String构造方法
String str1=new String("abc");
java的基本数据类型
boolean,byte,short,int,long,char,float,double
其余的都是引用类型。String和arry都是引用类型
"=="是比较两个变量的值是否相等。
"equals"是比较两个对象变量所代表的对象的内容是否相等。
定义变量是在栈内存分配一个名称,new是在堆内存分配空间创建对象。
引用实际上是对象的首地址,将首地址附给变量名,所以栈内存所存放的是变量的首地址。
equals
public boolean equals(Object anObject)
比较此字符串与指定的对象。当且仅当该参数不为 null,并且是表示与此对象相同的字符序列的 String 对象时,结果才为 true。

覆盖:
类 Object 中的 equals
如果 String 相等,则返回 true;否则返回 false。
String str1="abc";
int i=3;
System.out.println(str1+i);
输出abc3;

字符串对象和整形变量相加;
字符串对象可以和任何类型的变量相加。
int i=3;
float f=1.5f;
char ch='f';
boolean b='false';
System.out.println("as"+i+f+ch+b);
针对String类的+ 和+=是唯一重载的运算符。

String类对象是常量对象。
String str="abc";
str="def";
这样只是在str的栈内存当中值是def的引用;所以堆内存的abc是垃圾内存。
当内存不足时要回收内存。实际上str的值是不改变的。
在处理大量字符串的程序中,通常用StringBuffer来代替String类。

StringBuffer类对象的应用。主要是append和insert和toStirng方法。
x=new StringBuffer().append("a").append("4").append("c").toString();
常用方法:
append();
insert();
toString();
capacity();
charAt(int index);
delete()
deleteCharAt();
reverse();反序函数;

java.awt
awt是abstract window talke
GUI是graghic user interface

数组
函数的参数是数组的时候。
num.length是数组的元素个数,并不是数组占内存的大小。
int [] num=new int[3];

num=null;把他保存的引用清除。
没有任何变量保存的引用,首地址。
使堆内存成为垃圾内存。

转换垃圾内存,把保存引用的对象附值为空null。
对于对象而言,在不使用对象的时候,可以把他置空,这样他所占有的内存变为垃圾内存。
这样在需要使用的内存的时候编译器就会释放对象所占有的堆内存。
使用引用类型数组。
定义类学生。
Student[] students;
students=new Student[3];
内存分配图解。!!!!!!!!!!!
在堆内存里:
将student对象的首地址附值给对象数组的第一个空间。

main()方法,由java虚拟机调用,必须是public,虚拟机在调用main方法的时候,
不需要产生任何的对象,所以声明为static,由于是java虚拟机调用不需要哟返回值,
所以为void。参数(String [] args)是一个引用类型的数组,
测试:
System.out.println(args[0]);
异常
数组索引越界,数组args并没有被分配空间。
args是用来接收命令行参数的。
if(args.length>0)
{
   for(int i=0;i<args.length;i++)
    {
System.out.println(args[i]);
    }
}
不用中间变量实现数值交换
change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
!!!!单纯的变量的互换不能改变他们的值。
在java中传参时,都是以传值的方式进行。
基本数据类型传递的是数据的拷贝,引用类型,传递的是引用的拷贝。
数组和对象都是引用类型,

Point由Object派生,继承了toString方法。
那么point输出格式是
getClass().getName() + '@' + Integer.toHexString(hashCode())
只有必须重载toString方法
覆盖基类当中的toString方法,返回一个类或对象的简单的描述。
class Point
{
int x,y;
public String toString()
{
   return "x="+x+","+"y="+y;
}
}


改变了引用变量代表的对象当中内容,
但有时候希望他修改的是对象的拷贝,
就是不希望在函数体内修改原始的内容。
可以用对象的刻隆来实现
protected Object.clone();
需要重载并声明为public;
在派生类中实现Cloneable接口,他是一个标识接口,没有任何的抽象方法。
克隆实现
利用Object类的clone方法。
在派生类中覆盖基类的clone方法,并声明为public。
在派生类中实现Cloneable接口。
public interface Cloneable
此类实现了 Cloneable 接口,
以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。

如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,
则会导致抛出 CloneNotSupportedException 异常。

Cloneable接口没有抽象方法。
Cloneable接口是一个标识接口。
是为了告诉编译器可以对对象进行克隆了。

克隆返回Object类型对象。
class Student implements Cloneable
{
String name;
int age;
Student(String name,int age)
{
   this.name=name;
   this.age=age;
}
public Object clone()
{
   Object o=null;
   try
   {
    o=super.clone();
   }
   catch(CloneNotSurpportedException e)
   {
    System.out.println(e.toString());
   }
   return o;
}
}
克隆方法的对比理解。
Student s1=new Student("z1","18");
Student s2=(Student)s1.clone();
//s2=s1;
s2.name="z2";
s2.age="19";
System.out.println(s1.name,s2.age);

克隆的问题
教授类
class Professor
{
String name;
int age;
Professor()
{
   this.name=name;
   this.age=age;
}
}
教授的名字和年龄。
Professor p=new Professor("w1",50);
Student s1=new Student("z1",18,w1);
Student s2=(Student)s1.clone();
s2.p.name="lisi"
s2.p.age=30;
System.out.println(s1.p.name,s1.p.age);
只是将引用类型的引用复制了一遍。
实际上是指向同一个教授对象。
String类型也是引用类型,并没有重写clone方法。
"lisi"是一个常量,他创建后,把"lisi"的引用附给s2.name;
克隆的是p的引用。
所以s1和s2的p的引用值都是一样的。
他们指向了同一个教授对象。是对同一块内存中的对象修改的。
分享到:
评论

相关推荐

    精心整理的java常用的26个工具类-独家收藏

    精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个...

    IBMjava培训内部资料——Java常用类讲解.pptx

    IBMjava培训内部资料——Java常用类讲解.pptx

    java常用代码的集合

    以下是对标题“java常用代码的集合”和描述中提及的知识点的详细解释,以及与标签相关的具体代码示例。 1. ISBN验证: ISBN(国际标准书号)是用于唯一标识书籍的编码。在Java中,我们可以编写一个方法来验证一个...

    java一些常用代码的分享

    java一些常用代码的分享,收藏别人的.方便以后使用

    JAVA 工具类集合,有自定义的,也有收藏的,以备项目使用.zip

    "JAVA 工具类集合,有自定义的,也有收藏的,以备项目使用.zip" 这个压缩包文件很可能是包含了作者在实际开发过程中积累的各种实用工具类,这些工具类可以极大地提升开发效率并降低代码重复性。 首先,我们要理解...

    JAVA常用API文档 中文完整版PDF

    API就是一个帮助文档,...JAVA常用API文档包含各种集合、工具类等用法解析,非常适合想对javaAPI有详细了解的人,主要包含String、StringBuilder、Math、System、Object、Objects、BigDecimal等,感兴趣的可以收藏学习

    Java实战入门[一个资深Java培训老师倾力收藏].pdf

    本书《Java实战入门[一个资深Java培训老师倾力收藏]》为Java初学者提供了一条从零基础到实战开发的学习路径,涵盖了Java编程语言的多个重要方面。全书共分为二十一章,每章都围绕着具体的知识点和项目实践进行讲解,...

    Java中的Ajax编程常用类库打包

    这是一些在Java环境下使用Ajax编程的常用类库组件包,里面主要涉及dom4j、jaxen、commons-httpclient、mysql-connector等JAR包文件。这些都是比较常用的JAVA类库,应该下载收藏。

    Java基础常用面试题

    2. **String类中的常用方法** - `split()`: 分割字符串成数组。 - `indexOf()`: 查找字符或子字符串的位置。 - `replace()`: 替换指定字符或子字符串。 - `substring()`: 截取字符串的一部分。 - `equals()`: ...

    优秀资料(2021-2022年收藏)实验一Java常用工具类编程.doc

    教育精品资料

    精品专题(2021-2022年收藏)JAVA处理日期时间常用方法.doc

    这个精品专题课件聚焦于`java.util.Calendar`和`java.util.Date`这两个核心类,以及`java.text.SimpleDateFormat`类用于日期时间的格式化。 `java.util.Calendar`是一个抽象类,它提供了一种将日期和时间字段(如年...

    java 面试题收藏

    ### Java面试题收藏:在用户最慢的网络环境下如何提高登录响应速度 #### 背景与挑战 在开发Web应用程序时,确保良好的用户体验至关重要。然而,在某些情况下,用户可能会处于非常缓慢的网络环境中,这可能导致应用...

    Photo Manager JAVA2

    JUnit是Java领域常用的测试框架,开发者可能利用它来验证代码的正确性。此外,版本控制工具如Git也起到了关键作用,使得团队协作和代码管理变得更加容易。 至于"bpm"这个文件名,它可能是"Photo Manager JAVA2"的一...

    java经典宝典收藏总结.zip

    这份"java经典宝典收藏总结.zip"压缩包显然是一份全面的Java学习资源集合,旨在帮助学习者深入理解Java语言,掌握核心概念,并通过实例来提升实践能力。下面,我们将根据描述中的关键点,对Java的知识体系进行详细的...

    java开发学习工具,必须收藏

    7. **自定义快捷键**:用户可以根据个人习惯设置快捷键,使得常用操作更加便捷。 8. **宏功能**:通过录制和播放宏,可以实现一系列重复操作,极大地提高了工作效率。 9. **汉化版**:提供汉化版本,对于中文用户...

    一些JAVA试题(收藏)

    【标题】:“一些JAVA试题(收藏)”所涵盖的知识点主要集中在Java编程语言的基础与进阶部分,适合准备应聘Java相关职位的求职者进行自我学习和测试。 【描述】:“博文链接:...

    基于用Java实现的一个英语学习APP.rar

    基于用Java实现的一个英语学习APP.rar 功能点 背单词 这个功能点有点难搞,词库应该是没有什么办法了,现在手头上的数据就只有人人词典上的那些单词,而且存储方式也是一个问题,所有数据都是以 JSON 方式存储的,...

    收藏20200425-223758_java_

    3. **Java框架**:Spring、MyBatis、Hibernate等常用Java框架的介绍和使用示例,这些框架常用于企业级应用开发。 4. **Java Web**:包括Servlet、JSP、MVC模式、过滤器和监听器等Web开发技术,以及相关的服务器配置...

    Java初学者必备指南,值得收藏.pdf

    对于移动应用开发,尤其是Android平台,Java是最常用的编程语言之一,它的内存管理和安全性为开发者提供了稳定的开发环境。同时,Java与Kotlin和Android Studio等现代开发工具兼容,使得移动应用的开发变得更加高效...

    实战Java虚拟机——JVM故障诊断与性能优化

    带标签的,java虚拟机中比较好的一本书,值得阅读与收藏 随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为了一个充满活力的生态圈。《实战Java虚拟机——JVM故障诊断与性能...

Global site tag (gtag.js) - Google Analytics