java对象默认方法类型_Java基础之对象、类、方法

1,整数被0除将会产一个异常;

2,浮点数被0除会得到无穷大或NaN(Not a Number)结果;

3,strictfp关键字采用严格的浮点计算,可能产生溢出;

4,>>>高位用0填充,>>高位用符号填充,没有<<

5,x的a次幂,Math.pow(x, a);

6,数值之间的合法转换,实体箭头表示无信息丢失的转换,虚线箭头表示有精度丢失的转换:

265a2d2c60ce11ab877573c0ebaab0d3.png

7,cast 强制类型转换;

8,equals比较字符串内容,==比较字符存放位置;

9,空串,Null串,if(str != null && str.length !=0);

10,StringBuffer 效率较 StringBuilder低,但StringBuffer允许在多线程环境下执行,如果在单线程环境下执行应该尽量选用StringBuilder。这两种使用方法,效率同样高于String拼接或新建字符串,因为不管是拼接还是新建字符串都是重新new内存空间,String类型值都是不可变的字符串,重新赋值或拼接字符串都是new操作,原来的空间会被回收。

StringBuilder builder = StringBuilder();

builder.append();

String s = builder.toString();

System..println(s);

11,

Scanner in = new Scanner(System.in);

System.out.println("what is your name?");

String name = in.nextLine();

System.out.println(name);

Console cons = System.console();

String nameString = cons.readLine("username:");

char[] pwd = cons.readPassword("passowrd:");

12,jdk5开始printf沿用C语言格式%s,%d,%f占位

d8b0d9bef9907a0b6a6671633449f776.png

System.out.printf("%8.2f", 890.123f);

13,Arrays

14,对象的三个主要特征:行为、状态、标识

15,类之间的关系:

依赖(uses-a),一个类使用了另外一个类,尽量将这种依赖减少,两个类的改变将会减少bug存在,让类之间的耦合度减小;

聚合(has-a),类A的对象包含类B的对象;

继承(is-a)

34857443bf8d008c11d69c65083dd61d.png

16,预定义类

Math只封装了方法,不需要也不必隐藏数据,由于没有数据,因此也不必担心生成对象以始初始化实例域。

17,Date类主要用来表示时间点,GregorianCalendar扩展了Calendar,用于日历

GregorianCalendar now = new GregorianCalendar();

int month = now.get(Calendar.MONTH);

int weeday = now.get(Calendar.DAY_OF_WEEK);

GregorianCalendar clCalendar = new GregorianCalendar();

Date date = clCalendar.getTime();

18,static 静态方法,是一个没有this参数的方法,不能操作对象。只能操作自身类中的静态域。

19,Java总是采用按值调用。也就是说,方法得到的是所有参数值的一个copy,特别是,方法不能修改传递给它的任何参数变量的内容。

方法参数又分为:

1)基本数据类型(double,int等),参数存放的是数值,当参数被方法内操作后,原来的值不会发生改变;

2)对象引用(Employee x),这时候参数存放的是引用值(也就是地址),当传参时,传递的也是地址(类似指针);当参数被方法内操作后,其实操作的都是引用地址中的对象,对象的值都会发生改变。

20,默认域(类变量)初始化:

如果在构造器中没有显示地给域赋予初值,那么就会自动的赋为默认值:数值为0、布尔值为false、对象引用为null。

21,局部变量与域最大的不同在于,局部变量必须初始化。

22,仅当类没有提供任何构造器的时候,系统才会提供一个默认的构造器。

23,初始化数据域的方法:

1)在构造器中设置值,

2)在声明中赋值,

3)初始化块,这种初始在构造器之前被调用。

class Employee{

private static int nextId=1;//静态域,只存在一份数据

private int id;

private String name;

//初始化块在构造之前调用

{

id=nextId;

nextId++;

}

public Employee(){

}

public Employee(String name){//重载

this.name = name;

}

}

24, 构造器执行步骤:

1)所有数据被初始化为默认值,0、false、null

2)按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块

3)如果构造器第一行调用了第二个构造器,则执行第二个构造器主体

4)执行这个构造器主体

25,类的静态域初始化

1)

private static int nextId=1;

2)静态块初始化

private static int nextId;

static{

Random generator = new Random();

nextId = generator.nextInt(10000);

}

26,finalize(),在某些对象使用了内存以外的资源时,将其回收和再利用显得十分重要,可以为任何一个类添加finalize方法,这个方法将在垃圾回收器清除对象之前调用,实际中不要完全依赖这个方法被调用,因为很难知道这个方法什么时候会被调用。同时也可以使用Runtime.addShutDowmHook()。建议手动close外部资源,比如connection。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值