java学习笔记

写在之前

在大学期间学过c、c++,java当时是选修课没有好好学。出了大学后学了oc、go、c#。接触了这么多语言之后,还是觉得自己有自信说自己真正掌握了什么语言。因为工作的原因经常会在不同的项目中使用不同的语言,时间一长,不经常用的语言就又生疏了。这次重新开始学习java,希望自己能够从现在开始,通过写博客的方式,记录自己的学习过程,给大家一些参考,同时给以后再次重拾java提供方便,正所谓,赠人玫瑰,手有余香。

java规则中需要注意的点

java类文件中,只能有一个public类,可以有多个private类,文件名字需要跟public类名一致。
package写在类文件第一行、import写在package与类名之间
package要跟目录结构一致
java命名规范 类名大写开头、方法名应该用小写字母开头
java基础类型包括:内置数据类型、引用数据类型
java局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用
java中default修饰符 在同一包内可见、protect对同一包内的类和所有子类可见
java中final非访问修饰符final变量被初始化后不可修改、final方法子类不可重写、final类不可被继承
java中abstract非访问修饰符抽象类不能实例化对象,抽象方法子类必须实现
instanceof 运算符用于检查是否是一个特定类型
while 与 do…while语法的区别 后者至少执行一次
java增强for循环

for(type x : arr)
{
}

Java Number:
当需要使用数字的时候一般用内置数据类型(int、double、long、byte、float等),但是在实际开发过程中,我们经常会遇到需要使用对象而不是内置数据类型的情况如:()。java为这种情况准备了对应的包装类
在这里插入图片描述
string类:是不可改变的,一旦创建了string对象,那么它的值就无法改变了,如果需要对字符串做很多的修改,那么应该选择使用StringBuffer和StringBuilder

string格式化字符串
下面展示一些 内联代码片

System.out.printf("浮点型变量的值为 " +
                  "%f, 整型变量的值为 " +
                  " %d, 字符串变量的值为 " +
                  "is %s", floatVar, intVar, stringVar);

String fs;
fs = String.format("浮点型变量的值为 " +
                   "%f, 整型变量的值为 " +
                   " %d, 字符串变量的值为 " +
                   " %s", floatVar, intVar, stringVar);

在对字符串进行修改的时候,需要使用StringBuilder 和 StringBuffer 区别是后者是线程安全的,StringBuilder的优势是速度快,多数情况下使用StringBuilder
java日期和时间java正则表达式:后面用到再补充
java流、文件、IO:
控制台输入(读取字符read、读取行readline)
控制台输出System.out(是PrintStream类的引用),Sytem.out.print()Sytem.out.write()Sytem.out.println()
读文件:后面用到再补充
java异常处理
在这里插入图片描述
如图所示异常有error(错误)、exception(异常)。错误是程序无法处理的错误如虚拟机内存错误、网络断开被占。异常是程序可以处理的,其中编译时异常是编译器会检查是否有捕获的所谓检查性异常(由于程序无法遇见,所以这里做了强制),而运行时异常是逻辑代码写的不够稳健导致的。

try{
   //待捕获代码    
}catch(Exception e){
    System.out.println("catch is begin");
    return 1 ;
}finally{
     System.out.println("finally is begin");
     return 2 ;
}

这段代码 return 1不会被执行
java继承
继承可以使用extends 类、implements 接口,而且所有的类都继承于java.lang.Object,当一个类没有继承的关键字,则默认继承自object,(这个类在java.lang包中,所以不需要import,编译器自动帮我们导入)
子类是不继承父类的构造器的,只是调用(隐式或显示),如果父类构造器带方法则需要我们显示调用
java重写override重载overload
重写是外壳不变核心重写,且如果父类方法抛出异常,子类不能新增且宽泛该异常,是父类与子类的多态
重载是同一个类的多态
override不是必须加,加的好处是编译器会帮我们检查子类中是否有这个方法
java多态
三要素 继承、重写、指向基类的引用
虚函数 能够被重写的函数,java中普通函数相当于c++中的虚函数,默认动态绑定,如果不希望某个函数被重写加final关键字
抽象类、抽象方法
如果一个类包含抽象方法,类必须是抽象类
任何子类必须实现抽象方法,或者声明自己为抽象类

public abstract void test();

封装和接口
除非实现接口的类是抽象类,否则要实现接口中的所有方法
接口没有构造方法
接口中所有方法必须是抽象方法
接口不能包含成员变量
接口不是被类继承,而是要被类实现
接口支持多继承
接口中可以包含变量只是必须是public static final变量

//隐式抽象 不需要加abstract
public interface a
{
//隐式抽象 不需要加abstract
public void a();
public void b();
}
public class b implements a
{

}

类在实现接口方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出强制性异常。
一个接口可以继承另一个接口
接口的多继承

public interface a extents c,b
{
}

标记接口 建立一个公共的父接口 向一个类添加数据类型
java枚举类型

未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值