【大数据之JavaSE】

环境配置

JRE:Java运行环境,保护JVM和运行所需核心库
JDK:开发工具包
在这里插入图片描述
JDK8下载路径:https://www.oracle.com/java/technologies/downloads/#java8-windows

IDEA技巧

IDEA常用快捷键
在这里插入图片描述
快捷循环:5.fori
shift+F6:改变一个变量使用到的所有位置。

基本语法

  1. 编译命令:javac
  2. 标识符不能是关键词、不能以数字开头
  3. 类名:大驼峰(每个单词首字母大写) 变量名、方法名:小驼峰(第一个单词首字母小写,其他大写)
  4. 常量分类:字符串常量、整数、浮点数、字符(单个中文也是字符)、布尔常量、空常量(null)
  5. 对于byte char short 如果右侧赋值没超过范围,编译器会自动补上强转。
  6. 给变量赋值的时候,右侧是常量运算,会直接得到结果。编译器常量优化
  7. 方法的重载(overload):多个方法名称相同,参数列表不一样(参数个数不同、类型不同、多类型顺序不同),与返回值无关

数组

  1. 数组是一种引用类型数据,长度不可变,类型统一。
  2. 直接打印数组名称输出的是数组内存地址的哈希值
  3. 动态初始化数组规则:如果是整数,则是0;浮点:0.0;字符型:‘/u0000’;布尔类型:false;引用类型:null;
  4. Java内存划分为5部分:
    (1)栈(stack):存放的是方法中的局部变量,参数或者方法内的变量。方法的运行一定在栈中
    (2)堆(heap):凡是new出来的都在堆里。堆内存中都有地址值,数据都有默认值(具体如第10条)
    (3)方法区(method area):存储.class相关信息,包括方法的信息。
    (4)本地方法栈(native method stack):与操作系统有关。
    (5)寄存器(pc register):与cpu相关

输组内存图数组内存图

  1. A数组赋值给B数组,对B数组修改的时候,A数组也是会改变。实际上两个变量指向同一内存地址。
  2. 数组必须进行new初始化,才能使用其中的元素。如果只赋值了null,没有new,就会发生空指针异常。
  3. 数组作为方法的参数时,传入的是数组的地址值。
  4. 字符串特点:内容不变;可以共享使用;底层原理是byte[]字节数组。
  5. 双引号写的常量,在常量池中;new的不在常量池中。
  6. 基本数据类型:==是数值比较;引用类型:==是地址比较;
  7. 使用equals比较字符串推荐常量写在前面,如:“abc”…equals(b)。避免变量出现空指针异常。

  1. static关键词:只在本类保存一次,所有本类对象共享
  2. 静态方法属于类;可以通过类名调用;本类静态方法可以直接省略类名;
  3. 静态不能访问非静态,因为内存中先有静态内容后有非静态内容;
  4. 静态代码块:当类第一次被调用时候执行,执行唯一一次;静态代码块先与非静态执行
  5. java.util.Math常用类:ceil 向上取整;floor向下取整;
  6. 继承:通过子类 访问成员变量,用哪个类创建就优先用谁的变量,没有则向上找;通过成员方法访问成员变量,方法属于哪个类就优先调用谁,没有就向上找。
  7. 方法重写,子类父类方法名字和参数需一样;@Override修饰可以检测是否有效重写;
  8. 方法重写:子类返回值必须小于等于父类方法的返回值范围;子类方法权限必须大于等于父类方法的权限修饰符;public > protected > (default) > private
  9. 子类构造方法默认有super(),先调用父类构造方法;只有子类构造能调用父类构造方法;一个子类构造不能多次调用多次super构造;子类 必须调用父类构造,只能写一个且需写在第一个。
  10. 抽象类不能直接创建对象;需要用子类继承,子类需要重写所有父类的抽象方法。
  11. 接口中的抽象方法修饰符必须是public abstract ;接口不能直接使用,必须有一个实现类;实现类必须重写全部接口中的抽象方法(实现类名最后是接口名+impl),否则就是抽象类
  12. Java8 接口允许有默认方法,默认方法可以有方法体;public default 返回值 类名 参数{};可以解决接口升级的问题;默认方法可以被实现类重写
  13. Java8接口允许有静态方法,不能通过实现类去调用接口静态方法,使用接口名直接调用
  14. Java9接口允许私有方法。普通私有方法:解决多个默认方法之间的重复问题;静态私有方法:解决多个静态方法之间重复问题。
  15. Java9接口允许定义常量,必须使用public static final 修饰,不可改变,必须赋值。名字必须是完全 大写字母,下划线分割。
  16. 接口没有静态代码块、构造方法。一个类可以实现多个接口:implement A,B
  17. 对象的向上转型是安全的。(猫转向动物类)但转型后就不能调用子类独有的方法。***************************
  18. 对象的向下转型是还原,格式:子类名 对象名 = (子类名)父类实例名;instanceof 方法可以判断前面对象是否是后面类型的实例。***********
  19. 多态,编译看左边,运行看右边。
  20. final修饰的类不能有子类;修饰的方法不能被重写;修饰的局部变量不能更改;修饰的成员变量不能更改,必须手动赋值。
    四种权限
  21. 内部类作用范围类似成员变量。内部类可以访问外部类成员,外部类不可访问内部类成员。
  22. 包装类:把基本数据类型包装成类;装箱可以用构造方法,拆箱用成员方法 **Value()
  23. 自动装箱:Intger in = 1;in = in+1; in本是包装类无法直接运算,可自动转变为基本数据类型,这是自动拆箱。

集合collection

  1. ArrayList可以存储基本类型和引用类型,长度固定;collection只能引用类型,长度可变
  2. List接口:有序集合、允许存储重复元素、有索引
    Vector集合:
    ArrayList集合:
    LinkList集合:
    Set接口:不允许存储重复元素、无索引(不能for遍历)
    TreeSet集合:
    HashSet集合:
    LinkHashSet集合:
  3. collection接口是抽出的List、Set集合,无索引方法。
  4. 增强for循环 for(数据类型 变量名:集合名/数组名)
  5. 泛型:E表示未知的类型。使用时会把数据类型传递给E
  6. 创建对象集合使用泛型:避免类型转换的麻烦;把运行的异常提前到编译器期。
  7. 时间格式重写
    SimpleDateFormat simp = new SimpleDateFormat("yyyy mm dd hh mm ss"); String s = simp.format(time);
  8. 异常:抛出异常,格式:throw new **Exception();对参数合法性校验使用
  9. 异常处理方式1:throws。在方法声明时使用,在参数列表后加 throws **Exception。如果方法内部需要抛出多种异常,声明时也需要声明多个异常对象,若异常有子父类关系,则声明父类即可。如果调用的方法还有异常就继续声明异常,然后交给JVM处理(中断程序)
    10.异常处理方式2:try catch
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值