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的方式
-
javadoc -encoding UTF-8 -charset UTF-8 xxx.java/package
-
在idea里生成
-
IDEA 的 JavaDoc 生成功能在菜单 Tools->Generate JavaDoc 项里面。
-
点击上述菜单项后,会出现生成 JavaDoc 的对话框,一般的选项都很直观,不必细说。但是要注意生成 JavaDoc 的源代码对象的选择,一般以模块(Module)为主,必要时可以单独选择必要的 Java 源代码文件,不推荐以 PRoject 为 JavaDoc 生成的源范围。
-
里面有一个 Locale 可选填项,表示的是需要生成的 JavaDoc 以何种语言版本展示,根据 javadoc.exe 的帮助说明,这其实对应的就是 javadoc.exe 的 -locale 参数,如果不填,默认可能是英文或者是当前操作系统的语言,既然是国人,建议在此填写 zh_CN,这样生成的 JavaDoc 就是中文版本的,当然指的是 JavaDoc 的框架中各种通用的固定显示区域都是中文的。你自己编写的注释转换的内容还是根据你注释的内容来。
-
还有一个“Other command line arguments:”可选填项,非常重要,是填写直接向 javadoc.exe 传递的参数内容。因为有一些重要的设置,只能通过直接参数形式向 javadoc.exe 传递。这里必须要填写如下参数:
-encoding UTF-8 -charset UTF-8 -windowtitle "你的文档在浏览器窗口标题栏显示的内容" -link http://docs.Oracle.com/javase/7/docs/api
-
-
-
第一个参数 -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 标准库的类。
-
如果指定了 -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。
java方法
-
java 命令要在 src下 p.s. java xxx.xxx.Class arg1 arg2 arg3....
-
可变参数
-
T... x x是一个对象 可以通过下标和for取出
-
任意项(包括0项)
-
每个方法最多只有一个且放在最后
-
数组
-
初始化的方法
-
静态 如int[] a={1,2,3};
-
动态 如int[] b=new int[10]; 数组是引用类型,它的元素相当于实例变量,因此存在隐式初始化
-
-
java.utils,Arrays
-
稀疏数组
-
大部分元素都是同一值的数组
-
处理方式:
[0] 共m行 共n列 value (value个非0元素)
[1] 第x行索引 第y列索引 value 比如(3,2)的值是1
-