javaSE


进制表示

二进制0b

八进制0

十六进制0x

int w=10;
int w= 010;
int w=0x10;

浮点数:

float;double:不准确有限,离散,摄入误差,大约,接近但不等于

最好完全避免使用浮点数进行比较

银行等精确业务用 BigDecimal 类精确表示

char类型使用unicode编码,2字节 2的16次方,1个字节8个比特

u0000 到 uFFFF

char c3=’\u0061’ \u转义字符

输出就是a

进行运算的时候转换成同一类型在进行运算

基本类型强制转换(类型)变量名

左减价乘除先转换类型在做计算

强制转换 由低到高 int 转换成double

自动转换 由高到底 double转换成int

注意:不能对布尔类型进行转换;不能转换成不相干的类型(人——>猪);大容量转换成低容量时要强制转换,反之不用;强制转换可能会发生内存溢出

jdk7特性数字可以用下划线分割,下划线不会被输出,如:int i = 10_000

变量:实例变量(在类里,方法外边),局部变量(在方法里),类变量(实例变量加上static)

布尔值默认false,其余基本类型默认null,final修饰的叫常量不可被修改

final staticstatic final   都可以,修饰符不存在先后顺序

命名规范

1

左移:<< 4左移1位 4<<1

右移:>> 4右移一位 4>>1

字符串连接符如果 ”“ + a + b 会将变量a和b转换成String类型进行拼接

如果 a + b + “” a+b正常进行运算,然后在转化成String与”“拼接

x ? y : z

如果 x 为 true 则返回 y 否则返回 z

优先级:记什么优先级,加括号不香吗?

1

JavaSE官方文档,jdk8

https://docs.oracle.com/javase/8/docs/api/index.html

增加作者,版本注释等,只要增加在类上面用 /**回车 即可注释,注释完后在方法上也可以打上。

1

然后通过命令行生成类似的官方文档

1

1

1

1

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

1

2.里面有一个 Locale 可选填项,建议在此填写 zh_CN。

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

-encoding UTF-8 -charset UTF-8 -windowtitle “接口文档3.4” -link http://docs.Oracle.com/javase/7/docs/api

1

4.点击OK即可将javadoc生成到指定目录。

Scanner input = new Scanner(System.in);
input.hasNext()   input.hasNextLine()     input.hasNextInt()等//下一个输入,可以用于判断是否还有下一个输入,是否还有下一个输入(行),是否还有下一个整数等
使用input.next()  或  input.nextLine()接受下一个输入
//最后别忘记关闭
//凡是io流要记得关闭,不然占用资源
input.close()  

1

查看类的方法结构。

1

switch

1

反编译将.class文件在文件系统中丢到idea创建项目的目录,双击打开即可看到反编译的结果

1

1

1

JAVA中没有goto,但是有标签,用法如下,outer可以换成任意单词,了解即可,程序中最好不要用,不利于模块化。

1

java都是值传递

多态:

重载:方法名字一样,参数不同

重写:方法名相同,方法参数相同,方法里执行的动作不同

可变参数:

1

递归:

1

数组静态初始化,创建+赋值

int[] a ={1,32,4,5,6,};

动态初始化,int[] a = new int[10];然后在赋值。

Java内存分析

1

Arrays类常用方法:

什么是面向对象:以类的方式组织代码,以对象的方式组织(封装)数据。

1

继承 extends 子类是父类的扩展

子类无参构造自动调用父类无参构造 super() 父类构造方法在子类构造方法的第一行

父类没有无参构造(只写了有参构造) 子类也没有无参构造。

1

父类的引用可以指向了子类,方法的调用之和左边的类型有关(静态方法) 父类可以new子类,静态方法属于类,父类无法调用子类独有方法。

父类的引用可以指向了子类,方法的调用之和右边的类型有关(非静态方法)父类可以new子类

重写:需要有继承关系类,子类重写父类的方法

​ 1 方法名必须相同

​ 2 参数列表必须相同

​ 3 修饰符 :范围可以扩大但是不能缩小 public > protected > default > private

​ 4 抛出的异常:范围,可以被缩小,但是不能扩大

​ 子类的方法与父类的方法要一致,方法体不同!

为什么要重写:

​ 1 父类的功能子类不一定需要,或者不满足。

​ alt + insert : override

父类引用可以指向子类,但是不能调用子类独有方法。子类重写了父类的方法调用重写的方法

对象能够执行那些方法和左边类型有关和右边关系不大。

多态:

  1. 多态是方法的多态,属性没有多态
  2. 父类和子类,有联系, 类型转换异常!ClassCastException!
  3. 存在条件:继承关系,方法需要重写。父类的引用指向子类的对象,father f1 = new Son();
  4. stactic 方法属于类,不属于实例,无法背重写
  5. final 常量,在常量池中,无法被重写
  6. private 方法无法被重写

同一方法可以根据发送对象的不同而采取多种不同的行为方式

一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多(父类,有关系的类)

多态存在条件:

  1. 有继承关系
  2. 子类重写父类方法
  3. 父类引用指向子类对象

再次强调:多态是方法的多态,属性没有多态。

instanceof (类型转换)

instanceof可以判断两个类是否存在父子关系

抽象:编程思想!持续学习!!!

  1. 父类引用指向子类
  2. 把子类转换成父类,向上转型
  3. 把父类转换为子类,向下转型,强制转换
  4. 方便方法的调用,减少重复代码!

抽象:封装,继承,多态! 抽象类,接口

匿名代码块,静态代码块,构造方法执行顺序

先执行静态代码块,然后执行匿名代码块,最后是构造方法

注意:静态代码块只执行一次。例子:

1

1

1

1

第二次静态代码块不执行了。

stactic,只会在第一次构造方法去执行,其他的每次都会执行,匿名代码块可以用来赋初始值

静态方法可以使用静态导入包这个样子:

1

final 修饰的类不能被继承,final之后断子绝孙

abstract 修饰抽象类,抽象方法,抽象类写约束,让别人帮我们实现,只有方法名字,没有实现。

1

特点:

  1. 不能new,只能靠子类实现。
  2. 抽象类中可以写普通方法。
  3. 抽象方法必须在抽象类中。
  4. 抽象的抽象:约束。
  5. 存在意义:提升开发效率,抽象出来提供公共模板。

抽象类可以有静态方法

抽象类可以有构造方法,抽象类的构造函数用来初始化抽象类的一些字段,而这一切都在抽象类的派生类实例化之前发生。不仅如此,抽线类的构造函数还有一种巧妙应用:就是在其内部实现子类必须执行的代码。

普通类:只有具体实现

抽象类:具体实现和规范(抽象方法)都有

接口:只有规范,自己无法写方法,约束与实现分离:面向接口编程

接口声明关键字 interface

接口中所有定义都是抽象的,致谢返回值和方法名默认是public abstract

接口的作用:

  1. 约束
  2. 定义一些方法,让不同的人去实现
  3. 接口中的方法都是public abstract 修饰的
  4. 接口中的变量都是常量而且都是用public static final 修饰的
  5. 接口不能被实例化,接口中没有构造方法
  6. implements 可以实现多个接口
  7. 必须要重写接口中的方法

1

内部类:(不推荐写这个东西,那样的话代码只有你能看的懂了)

  1. 成员内部类
  2. 静态内部类
  3. 局部内部类
  4. 匿名内部类

1

在写程序的过程中,避免发生错误,错误很致命,造成损失很大。

异常的种类如下:

1

异常处理关键字,try ,catch,finally,throw,throws

try catch 必须有,finally可以不要

可以有多个catch 但是要从小到大捕获。

选中代码块,用ctrl + alt + t 选择包括的代码块

方法中处理不了异常进行抛出异常

主动抛出异常用 throw

方法处理不了异常,在方法上用 throws

1

如果需要捕获没有 try/catch 那么就需要throws去外面捕获抛出

throw:生成一个异常对象,并抛出,在方法内部<->主动抛出异常对象

throws:处理异常的方式。使用在方法声明处的末尾<->另外一种try-catch-finally

上游排污,下游治污

自定义异常:

自定义类继承 exception

例子:

1

测试:

1

将a设置为11的时候,结果如下:

1

处理异常实际经验总结:

1

ascii 表示中文1个字节

Unicode 表示中文2字节

utf-8 表示中文3个字节

将一个数转换成进制:

BigInteger b=new BigInteger("10");//1010
String we = b.toString(2);
System.out.print(we);
//或者
System.out.print(Integer.toBinaryString(10));

tu


文章作者: HuXiao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 HuXiao !
评论
  目录