鱼C论坛

 找回密码
 立即注册
查看: 3557|回复: 2

[学习笔记] 0基础学习Java ——第一天

[复制链接]
发表于 2017-7-5 10:59:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 回忆一遥远 于 2017-8-16 07:38 编辑

Java 是一种面向对象 (OOP) 的高级语言,和 C++ 类似,他也具有 封装 继承 多态 这三大特性。
面向过程解决问题时,每一步都需要程序员来进行。面向对象解决问题时,每个类里都可以自己解决已经设定好的问题,而不必程序员每一步行动都需要描述。

在 Java 语言中,取消了指针,增加“垃圾回收器”。Java 使用的是动态内存分配方式来操作内存使用,实例化一个对象需要用 new 关键词。Java 的“垃圾回收器”是设计用来处理内存释放问题。

Java 内置了异常处理,并且要求被强制使用。 在面向对象语言中,异常常常被表示成一个对象,但是异常处理不是面对对象的特征。
Java 的并发(多线程)也是内置于 Java 语言中的。

Java 的存储
1) 寄存器。位于处理器内部。最快的存储区,不能直接控制。(C 和 C++ 允许让编译器优先使用寄存器的分配方式(所以不一定成功))。
2) 堆栈。位于随机访问存储器(RAM)。速度仅次于寄存器的存储区。可通过堆栈指针使用内存空间。堆栈指针向下移动,分配新的内存;向上移动,释放那些内存。  由于 Java 特殊的内存管理机制, Java 系统必须知道存储在堆栈中所有项的确切生命周期,以便进行堆栈指针的操作。所以有些 Java 数据存储在堆栈中,但是 Java 的对象并不存储在堆栈中。
3) 堆。位于随机访问存储器(RAM)。速度仅次于寄存器的存储区。用于存放所有的 Java 对象。
4) 常量存储。 常量值通常直接存放在程序代码内部,因此它们永远不会被改变。在嵌入式系统中,可以选择将常量放在只读存储器(ROM)中。
5) 非 RAM 存储。数据完全存活于程序之外,它可以不受程度的任何控制,在程序未运行时也可以存在。例如:流对象 和 持久化对象。

Java 基本类型

基本类型                大小                最小值                最大值                        包装器类型

boolean                ——                ——                        ——                                Boolean

char                        16-bit        Unicode o        Unicode (2^16)-1        Character

byte                        8 bits        -128                        +127                        Byte

short                16 bits        -2^15                +(2^15)-1                Short

int                        32 bits        -2^31                +(2^31)-1                Integer

long                        64 bits        -2^63                +(2^63)-1                Long

float                        32 bits         IEEE754                IEEE754                        Float

double                64 bits        IEEE754                IEEE754                        Double

void                         ——                ——                        ——                                Void


所有数值类型都有正负号。
Boolean 类型所占存储大小没有明确规定,仅定义为能够取字面量 true 或 false 。
基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。
例如:
        char c = 'o';
        Character ch = new Character(c);

        Character ch = new Character('o');

计算高精度数值的类: BigInteger 和 BigDecimal 。
BigInteger 支持任意精度的整数。
BigDecimal 支持任意精度的定点数。

Java 的数组
Java 确保数组会被初始化,而且不能在它的范围外被访问。

Java 中不能够隐藏变量。
{
        int a = 12;
        {
                int a = 30;
        }
}
以上写法是错误的。

Java 中的变量作用域
作用域由花括号的位置决定。

Java 中对象的作用域
new 实例化一个 Java 对象时,它可以存活于基本类型的作用域之外。

Java 中的类
在 Java 中定义了一个类之后,可以在类中设置两种类型的元素: 字段(数据成员)和 方法(成员函数)。
字段可以时任何类型的对象,可以通过其引用与其进行通信,也可以时基本类型中的一种。
每个对象都有用于存储字段的空间、普通字段不能在对象间共享。
Java 中,如果类的某个成员是基本数据类型,即使没有进行初始化,Java 也会确保它获得一个默认值。(当变量作为类的成员使用时)
上面确保初始化的方法并不适用于“局部”变量。

Java 中的方法只能作为类的一部分来创建。方法只能通过对象才能被调用,而且在这个对象必须能够执行这个方法调用。

评分

参与人数 1鱼币 +8 收起 理由
小甲鱼 + 8 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-5 15:41:41 | 显示全部楼层
本帖最后由 回忆一遥远 于 2017-8-16 07:39 编辑

名字可见性
Java 设计者希望反过来使用自己的 Internet 域名来确保类库的名字时独一无二的。
在 Java 1.0 和 Java 1.1 中,扩展名 com 、 edu 、 org 、 net 等约定为大写形式。在 Java 2 之后整个包名都改成小写了。

使用构建
通过 import 指示编译器导入一个包(类库)。
java.lang 类库自动被导入每一个 Java 文件中。

Java 的注释和嵌入式文档
可以使用类似 C++ 中的段注释
/*
......
*/
也可以使用类似 C++ 中的单行注释
// ...

Javadoc ——注释文档的提取生成工具
javadoc 输出的是一个 HTML 文件,可以使用 Web 浏览器查看。Javadoc 命令只能在 "/**" 注释中出现,并结束于“*/”。
使用 Javadoc 的方式有两种:嵌入式 HTML,会使用“文档标签”。
独立文档标签是一些以“@”字符开头的命令,且要置于注释的最前面。“行内文档标签”可以出现在 Javadoc 注释中任何位置,它们也以“@”开头,但是要括在花括号内。
共有三种类型的注释文档,分别对应于注释位置后面的三种元素:类、域和方法。
例如:
/** 类的注释*/
public class Doc{
        /**域的注释*/
        public int i;
        /**方法的注释*/
        public void f(){}
}
Javadoc 只能为 public (公共)和 protected(受保护)成员进行文档注释。private (私有)和包内可访问成员的注释会被忽略掉。

部分文档的 Javadoc 标签
1. @see: 引用其他类
                @see标签可以引用其他类的文档。Javadoc 会在其生成的 HTML 文件中,通过 @see标签链接到其他文档。Javadoc 不会检查所提供的超链接是否有效。
2.{@link package.class#member label}
                该标签与 @see 非常相似,它用于行内,并且用 "label" 作为超链接文本而不用 "See Also"。
3.{@docRoot}
                该标签产生到文档根目录的相对路径,用于文档树页面的显示超链接。
4.{@inheritDoc}
                该标签当前这个类的最直接的基类中继承相关文档到当前的文档注释中。
5.@version
                如果 Javadoc 命令行使用了 “-version”标记,那么就可以从生成的 HTML 中提取版本信息。
                用法: @version 版本信息
6.@author
                如果 Javadoc 命令行使用了 “-author”标记,那么就可以从生成的 HTML 中提取作者信息。
                用法: @author 作者信息
7.@since
                该标签允许你指定程序代码最早使用的版本。
8.@param
                用法:@param parameter-name description
                parameter-name 是方法参数列表中的标识符
                description 是可延续数行的文本,终止于新文档标签出现之前。
9.@return
                该标签用于方法文档
                用法:@return description
                "description" 用来描述返回值的意义,可以延续数行。
10.@throws :”异常“
                用法:@throws fully-qualified-class-name description
                fully-qualified-class-name 给出一个异常类的无歧义的名字,该异常类在别处定义。
                description 告诉你为什么此特殊类型的异常会在方法调用中出现。
11.@deprecated
                指出一些旧特性已经由改进的新特性所取代,建议用户不要使用这些旧特性,因为不久的将来他们很可能会被删除。
                Java SE 5 之后,@deprecated 标签已经被 @Deprecated 注解所替代。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-5 16:03:55 | 显示全部楼层
本帖最后由 回忆一遥远 于 2017-8-16 07:39 编辑
  1. import java.util.Date;
  2. /** This frist Thinking in Java example program
  3. *  Displays a string and today's date.
  4. *  @author XXXXX
  5. *  @author www.XXXXX.net
  6. *  @version 5.0
  7. * */
  8. public class Hello {
  9.     /** Entrv point to class & application
  10.      * @param args array of string arguments
  11.      * @throws exceptions No exceptions thrown
  12.      */
  13.     public static void main(String [] args) {
  14.         System.out.println("Hello World");
  15.         System.out.println(new Date());
  16.     }
  17. }
复制代码

附上写的第一个 Java 代码,已经  Javadoc 的使用效果: 1.png
直接输出结构:


Javadoc 生成过程:

生成的过程

生成的过程


Javadoc 生成结果:

Javadoc 文档生成后的效果

Javadoc 文档生成后的效果






今天的学习暂时就到这里结束了~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 12:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表