jinjianou  

java基础

java运行机制

  • 编译型: 将所有代码先进行处理

    解释型: 运行一句处理一句

    java拥有两者的特性

    .java文件通过编译器转成.class文件,加载到类加载器并进行字节码校验,通过解释器翻译给操作系统.

 

java语法

  • 注释

    文档注释

    /**

    *@Description

    *......

    */

  • 标识符

    必须以任意unicode,$,_开头 只推荐 a-z(A-Z)

    java的标识符是大小写敏感的

  • 数据类型

    四类八种:byte/short/int/long,float/double,char,boolean

  • 扩展

    二进制 0b 八进制 0 十六进制0x

    最好不用浮点数比较 因为有些数不能精确的用二进制表示存储 由舍入操作

    byte,char,short<->int->long->float->double 其中byte,char,short,int两两是双向的

    有double优先double 其次flaot 再次long 其他的int

  • 变量

    • 类变量: 类 static

    • 实例变量:类 未声明默认值 0 0.0 \u0000(char) false null(引用数据类型)

    • 局部变量: 方法 必须声明和初始化

  • 运算符

    算数 + - * / % ++ --

    赋值 =

    关系 > < == >= <= instanceof

    逻辑 &&(&) ||(|) !

    位 & | ~ << >> >>>(无符号右移,即一切补0)

    • 如:-5(数字以32位表示) 原码 10...0101 补码 11....1011

    • a>>1 补码 11....101 原码 10....011 即-3

    • a>>>1 补码 01...110 原码 01...110 即2147483645

     

    背景:计算机内部用补码表示二进制数。符号位 1 表示负数,0 表示正数。

    正数:无区别,正数 的原码= 反码 = 补码

    重点讨论负数若已知 负数 -8,则其

    原码为:1000 1000,(1为符号位,为1代表负数,为0代表正数)

    反码为:1111 0111,(符号位保持不变,其他位置按位取反)

    补码为:1111 1000,(反码 + 1)

     

    即在计算机中 用 1111 1000表示 -8

     

    若已知补码为 1111 1000,如何求其原码呢?

    方法:

            注意:符号位保持不变!

        (A)将这个二进制数中(即 1111 1000),除了符号位,其余位置按位取反,得 1000 0111

        (B)+ 1,得到 1000 1000

     

    三目运算符 ?:

* 包机制 区分类的命名空间 从而更好的组织类

  • javadoc

    @author

    @version

    @since 最早使用的jdk版本

    @param

    @return

    生成javadoc的方式

    1. javadoc -encoding UTF-8 -charset UTF-8 xxx.java/package

    2. 在idea里生成

      1. IDEA 的 JavaDoc 生成功能在菜单 Tools->Generate JavaDoc 项里面。

      2. 点击上述菜单项后,会出现生成 JavaDoc 的对话框,一般的选项都很直观,不必细说。但是要注意生成 JavaDoc 的源代码对象的选择,一般以模块(Module)为主,必要时可以单独选择必要的 Java 源代码文件,不推荐以 PRoject 为 JavaDoc 生成的源范围

      3. 里面有一个 Locale 可选填项,表示的是需要生成的 JavaDoc 以何种语言版本展示,根据 javadoc.exe 的帮助说明,这其实对应的就是 javadoc.exe 的 -locale 参数,如果不填,默认可能是英文或者是当前操作系统的语言,既然是国人,建议在此填写 zh_CN,这样生成的 JavaDoc 就是中文版本的,当然指的是 JavaDoc 的框架中各种通用的固定显示区域都是中文的。你自己编写的注释转换的内容还是根据你注释的内容来。

      4. 还有一个“Other command line arguments:”可选填项,非常重要,是填写直接向 javadoc.exe 传递的参数内容。因为有一些重要的设置,只能通过直接参数形式向 javadoc.exe 传递。这里必须要填写如下参数:

           -encoding UTF-8 -charset UTF-8 -windowtitle "你的文档在浏览器窗口标题栏显示的内容" -link http://docs.Oracle.com/javase/7/docs/api

 

  1. 第一个参数 -encoding UTF-8 表示你的源代码(含有符合 JavaDoc 标准的注释)是基于 UTF-8 编码的,以免处理过程中出现中文等非英语字符乱码;第二个参数 -charset UTF-8 表示在处理并生成 JavaDoc 超文本时使用的字符集也是以 UTF-8 为编码,目前所有浏览器都支持 UTF-8,这样最具有通用性,支持中文非常好;第三个参数 -windowtitle 表示生成的 JavaDoc 超文本在浏览器中打开时,浏览器窗口标题栏显示的文字内容;第四个参数 -link 很重要,它表示你生成的 JavaDoc 中涉及到很多对其他外部 Java 类的引用,是使用全限定名称还是带有超链接的短名称,举个例子,我创建了一个方法 public void func(String arg),这个方法在生成 JavaDoc 时如果不指定 -link 参数,则 JavaDoc 中对该方法的表述就会自动变为 public void func(java.lang.String arg),因为 String 这个类对我自己实现的类来讲就是外部引用的类,虽然它是 Java 标准库的类。

  2. 如果指定了 -link http://docs.oracle.com/javase/7/docs/api 参数,则 javadoc.exe 在生成 JavaDoc 时,会使用 String 这样的短名称而非全限定名称 java.lang.String,同时自动为 String 短名称生成一个超链接,指向官方 JavaSE 标准文档 http://docs.oracle.com/javase/7/docs/api 中对 String 类的详细文档地址。-link 实质上是告诉 javadoc.exe 根据提供的外部引用类的 JavaDoc 地址去找一个叫 package-list 的文本文件,在这个文本文件中包含了所有外部引用类的全限定名称,因此生成的新 JavaDoc 不必使用外部引用类的全限定名,只需要使用短名称,同时可以自动创建指向其外部引用 JavaDoc 中的详细文档超链接。每个 JavaDoc 都会在根目录下有一个 package-list 文件,包括我们自己生成的 JavaDoc。如果指定了 -link http://docs.oracle.com/javase/7/docs/api 参数,则 javadoc.exe 在生成 JavaDoc 时,会使用 String 这样的短名称而非全限定名称 java.lang.String,同时自动为 String 短名称生成一个超链接,指向官方 JavaSE 标准文档 http://docs.oracle.com/javase/7/docs/api 中对 String 类的详细文档地址。-link 实质上是告诉 javadoc.exe 根据提供的外部引用类的 JavaDoc 地址去找一个叫 package-list 的文本文件,在这个文本文件中包含了所有外部引用类的全限定名称,因此生成的新 JavaDoc 不必使用外部引用类的全限定名,只需要使用短名称,同时可以自动创建指向其外部引用 JavaDoc 中的详细文档超链接。每个 JavaDoc 都会在根目录下有一个 package-list 文件,包括我们自己生成的 JavaDoc。

posted on 2021-04-04 00:44  jinjianou  阅读(30)  评论(0编辑  收藏  举报