JAVA基础学习(转)

[quote]一、修饰符


修饰符 类 属性 方法 局部变量

final 可以(不能被继承) 可以(不能被继承) 可以(表示不能被覆盖) 可以(常量)

static 可以(类变量) 可以(静态方法)

abstract 可以(抽象类) 可以(抽象方法)

pulbic 可以 可以 可以

protected 可以 可以

default 可以 可以 可以

private 可以 可以



二、==与equals

基本类型进行值比较时用 ==
对象类型进行值比较时用 equals

写equals方法时:
1、自反性判断 if(this==obj) return true;
2、判断是否为null if(obj==null) return false;
3、判断类型是否兼容 if(!(obj instanceof 类)) return false; 或 if(this.getClass()!=obj.getClass()) return false;
4、强制类型转换,判断每一个属性:简单类型用==,对象类型用.equals

toString()方法: 返回一个字符串
直接输出一个对象时,会自动调用对象的toString()方法,输出toString()的返回值
当没有覆盖toString()方法时,会输出 :对象名@十六进制的地址值


三、main方法的参数

在命令模式下:java MainMethodTest abc def 100

abc是args[0],def是args[2],100是args[3] 都以字符串类型接收

在eclipse下:run ... 先选择主类



四、String类详细介绍

int a=5;
int b=a<<33; 因为33%32=1; 所以左移1位。
所以b=10;

int a=3,b=4,c=5,d=0;
if(a>b)
if(c>d)
d=10;
else
d=20;
结果d=0;


1、String是一个不变模式:不变模式:一个对象一旦产生就不可能再修改(string就是典型的不变模式);通过不变模式可以做到对象共享;

2、如果用Stirng str = “abc”来创建一个对象时,则系统会先在串池中寻找有没有“abc”这个字符串。
如果有则直接将对象指向串池中对应的地址,如果没有则在串池中创建一个“abc”字符串。
所以:String str1 = “abc”;
String str2 = “abc”;
Str1 = = str2 返回值是ture;他们的地址是一样的。
也就是说str1和str2都指向了代码空间中相同的一个地址,而这个地址空间保存就是是字符串”abc”;

如果用String str = new String(“abc”)则直接在堆空间开辟一块存储空间用来存放”abc”这个字符串。
所以:String str1 = new String(“abc”);
String str2 = new String(“abc”);
Str1 = = str2 返回值是false;他们的地址是不一样的。
也就是说str1和str2分别指向了堆空间中不同的两个地址,而这两个地址空间保存的都是字符串”abc”;

3、java.lang下的StringBuffer类。
对于字符串连接
String str=”1”+”2”+”3”+”4”;
产生:
12
123
1234
会在串池中产生多余对象,而真正我们需要的只有最后一个对象,用这种方式进行字符串连接时,不管在时间上还是在空间上都会造成相当大的浪费。
所以我们应该使用 StringBuffer(线程安全的) 或者 StringBuilder(线程不安全的)
解决方案:
String s;
StringBuffer sb = new StringBuffer(“1”);
Sb.append(“2”);
Sb.append(“3”);
Sb.append(“4”);
S = sb.toString();
解决后的方案比解决前在运行的时间上相差2个数量级。

五、包装类

基本类型的包装类,为了提高效率

JAVA为每一个简单数据类型提供了一个封装类,使每个简单数据类型可以被Object来装载。
除了int(Integer)和char(Character),其余类型首字母大写即成封装类类型名。

转换字符的方式:
int I=10;
String s=I+” ”;
String s1=String.valueOf(i);

Int I=10;
Interger I_class=new integer(I);

封装类.字符串.基本类型


三种类型六种转换

new Integer() 或Integer.valueOf()
int--------------------------------------->Integer

i.intValue()
Integer----------------------------------->int

Integer.toString(...) 或 String s=100+" "
int--------------------------------------------------->String

Integer.parseInt("...")
String---------------------------------->int

i.toString()
Integer-------------------------------->String

Integer.valueOf("...") 或new Integer("...")
String------------------------------------------------>Integer


需要了解的方法:

Integer类中:
int intValue()
static int parseInt(String s) 默认为十进制
static int parseInt(String s,int radix) 第二个参数是进制(2--36)
String toString()
static String toString(int i)
static String toString(int i,int radix)
static Integer valueOf(int i)
static Integer valueOf(String s)
static Integer valueOf(String s,int radix)
[/quote]
[url]http://java-hanyu.iteye.com/blog/110270[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值