- 浏览: 263153 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
cuiqi4016:
正在做json转换的功能,帮大忙了,感谢博主分享
java 通过反射获取泛型的类型 -
cxshun:
写得很好,感谢博主的分享
java 通过反射获取泛型的类型 -
joy3229233:
[url][/url][flash=200,200][/fla ...
(转)flex checkbox 选中 -
linkagebest:
盗版可耻。。。。。
(转)flex checkbox 选中 -
shuai0420:
...
flex数据绑定
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的引用值都是一样的。
他们指向了同一个教授对象。是对同一块内存中的对象修改的。
发表评论
-
JVM内存管理:深入垃圾收集器与内存分配策略
2012-09-29 09:40 920转自http://icyfenix.iteye.com ... -
javaVM 内存管理
2012-09-29 09:18 1042转自http://icyfenix.iteye.com/blo ... -
使用J2SE API读取Properties文件的六种方法
2012-03-15 11:46 9431。使用java.util.Properties ... -
java设计模式 -Decorator
2012-03-01 16:05 968//抽象构件角色 abstract public c ... -
设计模式------Decorator
2012-03-01 14:29 807一、学习装饰着模式 1、定义及作用 该模式以对 ... -
正则表达式学习
2011-12-31 09:56 1068//正则表达式去掉中文 public static vo ... -
System.gc()
2011-06-24 17:40 1034最近在在翻看java的Garbage Collection,即 ... -
java gc(转)
2011-06-24 16:07 972<%@ page contentType="t ... -
hibernate
2011-06-24 11:29 01.hibernate lazy, inverse, casc ... -
详解spring事务属性(转)
2011-06-10 10:46 830Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我 ... -
spring心得(转)
2011-06-03 11:00 8411、spring原理 s ... -
实战Concurrent
2011-05-30 17:45 918编写多线程的程序一直都是一件比较麻烦的事情,要考虑很多事情,处 ... -
Memcached(转)
2011-05-30 17:32 957我对于Memcached的接触,还是在去年看了CSDN的一系列 ... -
动态创建代理(转)
2011-04-21 11:22 1056随着Proxy的流行,Sun把它纳入到JDK1.3实现了Jav ... -
代理模式(转)
2011-04-21 11:17 902代理模式是常用的Java 设计模式,它的特征是代理类与委托类有 ... -
工厂模式
2011-04-18 15:35 1068简单工厂,工厂方法和 ... -
java 通过反射获取泛型的类型
2011-03-24 13:34 32180jdk1.5开始支持泛型,所以我们有时需要把泛型里定义的对象的 ... -
java反射学习(转)
2011-03-22 15:51 1020Java提供了一套机制来动态执行方法和构造方法,以及数组操作等 ... -
java反射(转)
2011-03-22 15:29 973Java的反射机制是Java特 ... -
Quartz学习
2010-11-09 13:20 9331.与Spring集成 Spring中与quartz 的结合方 ...
相关推荐
精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个...
IBMjava培训内部资料——Java常用类讲解.pptx
以下是对标题“java常用代码的集合”和描述中提及的知识点的详细解释,以及与标签相关的具体代码示例。 1. ISBN验证: ISBN(国际标准书号)是用于唯一标识书籍的编码。在Java中,我们可以编写一个方法来验证一个...
java一些常用代码的分享,收藏别人的.方便以后使用
"JAVA 工具类集合,有自定义的,也有收藏的,以备项目使用.zip" 这个压缩包文件很可能是包含了作者在实际开发过程中积累的各种实用工具类,这些工具类可以极大地提升开发效率并降低代码重复性。 首先,我们要理解...
API就是一个帮助文档,...JAVA常用API文档包含各种集合、工具类等用法解析,非常适合想对javaAPI有详细了解的人,主要包含String、StringBuilder、Math、System、Object、Objects、BigDecimal等,感兴趣的可以收藏学习
本书《Java实战入门[一个资深Java培训老师倾力收藏]》为Java初学者提供了一条从零基础到实战开发的学习路径,涵盖了Java编程语言的多个重要方面。全书共分为二十一章,每章都围绕着具体的知识点和项目实践进行讲解,...
这是一些在Java环境下使用Ajax编程的常用类库组件包,里面主要涉及dom4j、jaxen、commons-httpclient、mysql-connector等JAR包文件。这些都是比较常用的JAVA类库,应该下载收藏。
2. **String类中的常用方法** - `split()`: 分割字符串成数组。 - `indexOf()`: 查找字符或子字符串的位置。 - `replace()`: 替换指定字符或子字符串。 - `substring()`: 截取字符串的一部分。 - `equals()`: ...
教育精品资料
这个精品专题课件聚焦于`java.util.Calendar`和`java.util.Date`这两个核心类,以及`java.text.SimpleDateFormat`类用于日期时间的格式化。 `java.util.Calendar`是一个抽象类,它提供了一种将日期和时间字段(如年...
### Java面试题收藏:在用户最慢的网络环境下如何提高登录响应速度 #### 背景与挑战 在开发Web应用程序时,确保良好的用户体验至关重要。然而,在某些情况下,用户可能会处于非常缓慢的网络环境中,这可能导致应用...
JUnit是Java领域常用的测试框架,开发者可能利用它来验证代码的正确性。此外,版本控制工具如Git也起到了关键作用,使得团队协作和代码管理变得更加容易。 至于"bpm"这个文件名,它可能是"Photo Manager JAVA2"的一...
这份"java经典宝典收藏总结.zip"压缩包显然是一份全面的Java学习资源集合,旨在帮助学习者深入理解Java语言,掌握核心概念,并通过实例来提升实践能力。下面,我们将根据描述中的关键点,对Java的知识体系进行详细的...
7. **自定义快捷键**:用户可以根据个人习惯设置快捷键,使得常用操作更加便捷。 8. **宏功能**:通过录制和播放宏,可以实现一系列重复操作,极大地提高了工作效率。 9. **汉化版**:提供汉化版本,对于中文用户...
【标题】:“一些JAVA试题(收藏)”所涵盖的知识点主要集中在Java编程语言的基础与进阶部分,适合准备应聘Java相关职位的求职者进行自我学习和测试。 【描述】:“博文链接:...
基于用Java实现的一个英语学习APP.rar 功能点 背单词 这个功能点有点难搞,词库应该是没有什么办法了,现在手头上的数据就只有人人词典上的那些单词,而且存储方式也是一个问题,所有数据都是以 JSON 方式存储的,...
3. **Java框架**:Spring、MyBatis、Hibernate等常用Java框架的介绍和使用示例,这些框架常用于企业级应用开发。 4. **Java Web**:包括Servlet、JSP、MVC模式、过滤器和监听器等Web开发技术,以及相关的服务器配置...
对于移动应用开发,尤其是Android平台,Java是最常用的编程语言之一,它的内存管理和安全性为开发者提供了稳定的开发环境。同时,Java与Kotlin和Android Studio等现代开发工具兼容,使得移动应用的开发变得更加高效...
带标签的,java虚拟机中比较好的一本书,值得阅读与收藏 随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为了一个充满活力的生态圈。《实战Java虚拟机——JVM故障诊断与性能...