欢迎各位读者关注个人微信公众号,共同探讨Java相关技术。生命不止,学习不休!vue
也许你慢慢地对程序有了这样的认识:程序只是一些列带有方法的对象的组合,这些方法以其它对象为参数,可在任何地方返回,并发送消息给其余对象。这样的认识,目前来讲,是对的。java
决定了对象的外观与行为。Java中用class关键字来对类进行定义。程序员
在Java中,容许程序员定义一个新的数据类型来知足其应用的需求。其形式为class后跟上新类型的名称。好比:设计模式
class NewTypeName {
//class definition
}
经过以上代码,你就定义了一个新的名为NewTypeName
的数据类型。类型名称能够由程序员本身定义,而class
关键字是必须的、大小写敏感的,必定不能写错。可是单纯地定义一个空类定义的类,是没有任何意义的。安全
类最基本的做用,在于经过类获取到相应的对象,在向对象发送消息时,以指望对象作某些特定的事情。微信
在对类进行定义后,就能够在类中设置如下两种类型的元素:字段和方法。markdown
先导概念并发
引用
来操纵对象。
存储值
,并置于虚拟机栈中。每种基本数据类型所占存储空间大小恒定不变。
基本类型 | 大小 | 包装类型 |
---|---|---|
boolean | - | Boolean |
char | 16bit | Character |
byte | 8bit | Byte |
short | 16bit | Short |
int | 32bit | Integer |
long | 64bit | Long |
float | 32bit | Float |
double | 64bit | Double |
字段app
字段能够是基本数据类型中的一种,也能够是任何类型的对象,能够经过其引用与其所指向的对象。若是是对某个对象的引用,那么必须经过初始化使其与一个实际的对象关联。学习
如何引用对象中的某个字段
对象名称.字段名称
示例
class NewTypeName {
int i;
int j;
int k;
public static void main(String [] args) {
NewTypeName type = new NewTypeName();
//此处type是对象的名称,其是一个引用,i/j/k分别是NewTypeName这个类中的字段
type.i = 1;
type.j = 2;
type.k = 3;
}
}
基本成员默认值
基本类型 | 默认值 |
---|---|
boolean | false |
char | ‘\u0000’(null) |
byte | 0 |
short | 0 |
int | 0 |
long | 0l |
float | 0.0f |
double | 0.0d |
方法
Java中方法用来表示用
用来作某些事情的方式
。方法的基本构成部分包括:方法名称、参数、返回值和方法体
一个方法的基本形式
ReturnType methodName(String arg1, Integer arg2) { /* Method Body */ }
构件解析
方法名称和参数列表合起来称为“方法签名”,其惟一肯定地标识出某个方法
在Java中,参数老是以值的形式进行传递。若是是基本数据类型,则传递的是类型的真值;若是是引用类型,则传递的是引用的值。Java中不存在引用传递
。
return关键字在Java的方法中表示返回,存在以下两种状况:
在Java中,建立了一个引用变量后,最安全的方案就是为其绑定一个实际存在的对象,能有效防止恼人的NullPointerException(空指针异常);
Java中经过new操做符来实现对象的建立,其基本形式为:
new NewTypeName();
其中new关键字,表示向堆中申请内存;NewTypeName表示一个数据类型,在申请到内存空间后,会以这个数据类型为模板进行对象的实例化;实例化完成后,会对对象中的字段进行默认值填充。
在Java中有5个不一样的地方能够进行数据存储:
无家可归的对象,意味着没有引用指向该对象,该对象找不到它的归属。
在大多数语言中,都存在做用域
的概念。做用域决定了在其内部定义的变量名的可见性和生命周期。在Java中不容许嵌套的做用域中,较小的做用域拥有与较大的做用域相同的变量,以下代码没法经过编译:
//此处的代码没法实际运行,只作演示
{
int x = 11;
{
int x = 12;
}
}
Java中贯彻了一切都是对象的观念。对象不具有和基本数据类型同样的生命周期。对象能够存活于做用域以外
。
如如下代码:
{
String s = new String("Hello World");
}//运行到这里,s已经在做用域以外
在上述代码中,在超过做用域以后,引用变量s的生命周期已经结束,但”Hello World”这个String对象却依旧存在。其生存于堆中,只是咱们再没有引用变量来指向这个对象了,所以这个对象对于咱们来讲是不可见的。
那么另一个问题是,Java是如何来保障这些没有引用变量指向的对象不会把内存塞爆的呢?Java采用了垃圾回收器,用来监视全部用new
关键字建立的对象,若是一个对象再也不被引用,那么垃圾收集器便会在随后的内存回收活动中销毁该对象,并释放其所占用的内存。所以,Java程序员是不须要太在意内存的回收的。
本文主要以Java的类为切入点,描述了从类到对象的建立,而后到对象的存放和销毁的整个流程。因为咱们大多数的时间都是在建立新的类来知足咱们的业务需求,所以一个类的内部结构异常重要,好的结构能最大化地提高程序运行效率。这涉及到后面讲解的设计模式,在此只对类的构成做一个了解。
在下一节中,咱们尝试运用目前已学习的内容,来完成咱们的第一个Java程序。