java中"new"关键字的作用及含义

我们常常在Java学习中,听到别人调侃程序员:"没对象了怎么办,简单呀,"new"一个对象"。看似是一个调侃其实是有道理的,关于"new"关键字的详情请看下面一段示例:

class Student{
	private String name="林青霞";
	private int age =27;
	public Student(){
		name="小狗子";
		age=19;
	}
	public void show(){
		System.out.println(name+"-------"+age);
	}
 }

public class StudentDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student s=new Student();
		s.show();
	}

}

在本例中    Student s=new Student();  的作用就是

             1.加载Student.class文件进内存。

             2.在栈内存为s开辟空间

             3.在堆内存为学生对象开辟空间

             4.对学生对象的成员变量进行默认初始化

             5.对学生对象的成员变量进行显示初始化

             6.通过构造方法对学生对象进行成员变量赋值

             7.学生对象初始化完毕,把对象变量赋值给s变量

说这么多,总结下来就是:

              1.Java关键字new是一个运算符。与+、-、*、/等运算符具有相同或类似的优先级。

              2.创建一个Java对象需要三部:声明引用变量、实例化、初始化对象实例。

              3.实例化:就是“创建一个Java对象”-----分配内存并返回指向该内存的引用。

              4.初始化:就是调用构造方法,对类的实例数据赋初值。

关于"new"关键词对对象内存的分布深入解析请参考:https://blog.csdn.net/ljheee/article/details/52235915

oracle官方解释网址:https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html

Java关键字是指具有特定含义和用途的保留字,不能作为标识符(变量名、类名、方法名等)使用。以下是Java所有关键字作用: 1. abstract:抽象类或抽象方法的修饰符,表示该类或方法不可被实例化或调用,只能被子类继承或实现。 2. assert:断言语句的关键字,用于在代码检查某个条件是否为真,如果不为真就会抛出一个 AssertionError 异常。 3. boolean:布尔类型的数据类型,表示真或假。 4. break:跳出循环或 switch 语句的关键字。 5. byte:字节类型的数据类型,表示-128到127之间的整数。 6. case:在 switch 语句用于判断某个值是否等于某个常量。 7. catch:用于捕获异常的关键字,在 try-catch-finally 结构使用。 8. char:字符类型的数据类型,表示单个字符。 9. class:声明一个类的关键字。 10. const:Java没有实际意义,但为了与 C++ 兼容保留了该关键字。 11. continue:跳过当前循环剩余的语句,执行下一次循环。 12. default:在 switch 语句用于指定默认的分支。 13. do:循环语句的关键字,执行一个语句块,然后根据条件判断是否继续执行。 14. double:双精度浮点数类型的数据类型。 15. else:在 if 语句用于指定条件不成立时执行的代码块。 16. enum:枚举类型的关键字,用于定义一组常量。 17. extends:表示一个类继承自另一个类的关键字。 18. final:修饰类、方法和变量,表示它们的值或引用无法改变。 19. finally:在 try-catch-finally 结构,无论是否发生异常都会执行的代码块。 20. float:单精度浮点数类型的数据类型。 21. for:循环语句的关键字,用于执行一个语句块多次。 22. goto:Java没有实际意义,但为了与 C++ 兼容保留了该关键字。 23. if:条件语句的关键字,用于判断某个条件是否成立。 24. implements:表示一个类实现一个接口的关键字。 25. import:引入一个包或类的关键字。 26. instanceof:用于判断一个对象是否属于某个类的关键字。 27. int:整数类型的数据类型。 28. interface:声明一个接口的关键字。 29. long:长整型数据类型。 30. native:表示一个方法是本地方法(由本地代码实现)的关键字。 31. new:创建一个新对象的关键字。 32. package:声明一个包的关键字。 33. private:表示一个方法或变量只能被同一个类的其他方法或变量访问的关键字。 34. protected:表示一个方法或变量可以被同一个包的其他类访问,或者被继承的子类访问的关键字。 35. public:表示一个方法或变量可以被任何类访问的关键字。 36. return:从方法返回值的关键字。 37. short:短整型数据类型。 38. static:表示一个方法或变量属于类而不是属于对象的关键字。 39. strictfp:表示一个方法是严格遵守 IEEE 754 浮点数规范的关键字。 40. super:表示一个对象所属的超类的关键字。 41. switch:多分支语句的关键字。 42. synchronized:表示一个方法或代码块是线程安全的关键字。 43. this:表示当前对象的关键字。 44. throw:用于抛出异常的关键字。 45. throws:用于声明某个方法可能会抛出的异常的关键字。 46. transient:表示一个变量不会被序列化的关键字。 47. try:异常处理语句的关键字。 48. void:表示一个方法不返回任何值的关键字。 49. volatile:表示一个变量是易变的(可能会被多个线程同时访问)的关键字。 50. while:循环语句的关键字,用于执行一个语句块多次,直到条件不成立为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值