万物皆可为对象
用引用操作对象
-
必须有你创建所有对象(new)
-
存储都什么地方
寄存器 最快的存储区,位于处理器内部
栈堆(岁访问存储器),通过栈堆指针可以从处理器哪里获得直接支持
堆(一种通用的内存池,也位于RAM区),用于存储所有的Java对象;用堆进行存储分配的清理可能比用栈堆进行存储分配需要更多的时间
常量存储 直接存放在程序代码内部
非RAM存储 数据存活于程序之外,不受任何程序的控制,在程序没有运行时也可以存在(例如:流对象和持久化对象)
-
特列:基本类型
基本类型 大小 最小值 最大值 包装器类型 boolean - - - Boolean char 16-bit Unicode o Unicode 2^16-1 Character byte 8bit -128 +127 Byte short 16bits -2^15 +2^15-1 Short int 16bits -2^31 +2^31-1 Integer long 64bits -2^63 +2^63-1 Long float 32bits IEEE754 IEEE754 Float double 64bits IEEE754 IEEE754 Double void - - - Void boolean类型所占内存空间大小没有明确定义,仅定义为能够取字面值true或false
高精度数字
java提供了两个用于高精度计算的类:BigInterger和BigDecimal;(二者没有对应的基本类型)
这两个类包含的方法,提供的操作对于基本类型所能执行的操作相似。
BigInteger:支持任何精度的整数。准确表示任何大小的整数值,而不会都市任何信息
BigDecimal:支持任何精度的定点数,例如:他可以进行精确的货币计算
Java中的数组
创建数组对象时,实际上就是创建了引用数组,并且每个引用都会被初始化一个特定值,该值拥有自己的关键字null。(看到null,java就会知道这个引用还没有某个对象)
还可以床架用来存放基本数据类型的数组
永远不需要销毁对象
在作用域里定义的变量只可用于作用域结束之前
-
对象的作用域
Java对象不具备和基本数据类型一样的生命周期。当用new创建一个java对象时,他可以存活于作用域之外
new创建对象,只要需要就会一直存在。(垃圾回收机制)
创建新的数据类型:类
-
字段和方法
在类中设置两种类型元素:字段(数据成员)和方法(成员函数)如果字段是对某个对象的引用,必须对其进行初始化该阴影,以便使其与一个实际的对象相关联。
基本成员默认值
-
##### 方法、参数和返回值
方法的基本组成部分包括:名称、参数、返回值和方法体;
返回类型描述的是在调用方法之后从方法返回的之,参数列表给出了要传给方法的信息的类型和名称。方法名和参数列表唯一地标识出某个方法。Java中的方法只能作为类的一部分来创建。方法只有通过对象才能被调用,且这个对象必须能执行这个方法的调用。
##### 参数列表
方法的参数列表知道要传递给方法什么样的信息。在参数列表中必须知道每个所传递对象的类型和名字。
**return**代表以及做完,离开此方法,其次此方法产生的值要放在return语句后面
若返回类型void,return关键字的作用只是用来退出此方法
##### 构建一个Java程序
* 名字可见性
* 运用其他构建 (import导包,也就是一个Java的一个类库)
* static关键字
通常创建类时就是描述那个类的对象的外观与行为。只有在new创建对象时候才会获得对象,数据内存空间才被分配,其方法才供外界调用。
当声明一个事务是static是,就意味着这个域或方法不会包含它的那个类的任何对象实例关联在一起。所有即使从未创建某个类的任何对象也可以调用其static方法或者访问其static域。static方法的一个重要用法就是在不创建任何对象的前提下就可以调用它,这一点对main方法很重要
##### 第一个Java程序
`import java.util.*`
`public class helloworld{`
`System.out.println("helloworld");`
`system.out.println(new Date);`
`}`
<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="java" cid="n128" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit;">import java.util.*;
pubic class heloWorld{
System.out.println("hello world");
System.out.println(new Date());
}</pre>
类名必须与文件名相同
##### 编译与运行
jdk
##### 注释和嵌入式文档
/**/
//
1. 注释文档:将代码同文档链接起来
Javadoc便是用于提取注释得工具,查找文档内得特殊注释标签。输出得是一个HTML文档,可以用web浏览器查看
2. 语法
所有javadoc命令都只能在“/**”注释中出现,结束于“*/”
注释后面得三种袁术:类/域和方法
javadoc只能为public和protected成员进行文档注释,private和包内可访问得注释会被忽略掉
##### 嵌入式HTML
javadoc通过生成得HTML文档传送HTML命令,主要目的还是为了对代码进行格式化
在文档注释中,位于每一行开头得型号和前导空格都会被javadoc丢弃。javadoc会对虽有内容重新格式化,使其与标准得文档外观一致。
##### 一些标签实例
1. **@see**:引用其他类
2. **{@link package.class#member label}**
3. **{@docRoot}**
4. **{@inheritDoc}**
5. **@version**
6. **author**
7. **@since**
8. **@param**
9. **@return**
10. **@throws**
11@**deprecated**
##### 文档示例
![捕获1.PNG](https://upload-images.jianshu.io/upload_images/23848521-f4e1f85df1b4b6eb.PNG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
##### 编码风格
代码风格:类名得首字母要大写;(驼峰命名)