java基础

java基础

java基础的知识点:
基础语法: 数据类型、运算符、标识符和关键字、流程控制(顺序/分支/循环)、数组
面向对象1: 类和对象、方法(方法重写和方法覆盖)、成员变量和局部变量、封装/继承/多态、构造器和初始化块
面向对象2: 抽象类、静态类、内部类、枚举类、接口、final关键字、单例模式、垃圾回收
包和权限修饰符、正则表达式
java常用API: Object类、日期日历类、数学类、系统类、包装类

java的基本数据类型

数据类型 字节 范围 默认值
byte 1 -2^7 ~ 2^7-1 0
short 2 -2^15 ~ 2^15-1 0
int 4 -2^31 ~ 2^31-1 0
long 8 -2^63 ~ 2^63-1 0
float 4 / 0.0f
double 8 / 0.0d
char 2 / '\u0000'
boolean 4 / false

自动类型转换

  自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下:

  低--------------------------------------------->高

  byte,short,char-> int -> long -> float -> double

JDK和JRE的区别

JDK: Java Development Kit,java开发工具包,JDK包含JRE

JRE: Java Runtime Environment,java运行时环境

运行java程序只需安装JRE,编写java程序需要安装JDK

==和equls的区别

  • == 比较对象的引用
  • equals 一般比较对象的值
  • 基本类型和其包装类型中,==比较的是值是否相同
  • 引用类型中,==比较的是引用是否相同
  • equals 默认比较对象的引用,但多数类重写了equals方法,所以一般比较的是对象的值
    //面试题1
    String a = "hello";
    String b = "hello";
    String c = new String("hello");
    String d = new String("hello");

    System.out.println(a==b);   //true
    System.out.println(b==c);   //false
    System.out.println(c==d);   //false
    System.out.println(b.equals(c)); //true
    System.out.println(c.equals(d)); //true

    //面试题2
    Integer a = 10;
    int b = 10;
    Integer c = Integer.valueOf(10);
    Integer d = new Integer(10);

    System.out.println(a==b);   //true
    System.out.println(a==c);   //true
    System.out.println(b==c);   //true
    System.out.println(b==d);   //true
    System.out.println(c==d);   //false
    System.out.println(a.equals(c));   //true
    System.out.println(a.equals(d));   //true
    System.out.println(c.equals(d));   //true

两个对象的hashCode相同,则equals也一定为true?

不一定,因为在散列表中,hashCode()相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等

String、StringBuffer和StringBuilder区别

  • 数据是否可变
    • String的使用不可变数组
    • StringBUffer和StringBuilder使用的是可变数组
  • 线程是否安全
    • StringBuilder线程不安全但效率高
    • StringBuffer线程安全但效率低
  • 其他
    • StingBUilder和StringBUffer有相同的父类AbstractStringBuilder
    • 速度对比: StringBuilder>StringBuffer>String

final关键字的作用

  • final修饰的类不能被继承
  • final修饰的方法不能被重写或继承
  • final修饰的变量是常量,必须定义初始值,值不能被修改
  • final不能修饰构造方法

java向上取整、向下取整、四舍五入

    //向上取整
    System.out.println(Math.ceil(0.5));   //1.0
    System.out.println(Math.ceil(-2.5));  //-2.0
    System.out.println(Math.ceil(2.3));   //3.0
    System.out.println(Math.ceil(-1.8));  //-1.0
    //向下取整
    System.out.println(Math.floor(0.5));   //0.0
    System.out.println(Math.floor(-2.5));  //-3.0
    System.out.println(Math.floor(2.8));   //2.0
    System.out.println(Math.floor(-1.2));  //-2.0
    //四舍五入
    System.out.println(Math.round(0.5));   //1
    System.out.println(Math.round(-2.5));  //-2
    System.out.println(Math.round(2.6));   //3
    System.out.println(Math.round(-1.3));  //-1

String类常用方法

  • indexOf() 返回字符索引
  • charAt() 返回索引上的字符
  • replace() 字符串替换
  • split() 字符串分割
  • trim() 去字符串两端空白
  • getBytes() 返回byte类型数组
  • toLowerCase() 转小写字母
  • toUpperCase() 转大写字母
  • substring() 截取字符串

BIO、NIO、AIO区别

  • BIO 同步阻塞IO,简单方便,并发处理能力低
  • NIO 同步非阻塞IO,客户端和服务端通过通道(channel)通讯,实现了多路复用
  • AIO 异步非正式IO,基于事件和回调机制

switch可以使用的数据类型

char byte short int

Character Byte Short Interger

String enum

运算符优先级

计算 4&5 4^5 4&10>>1 4|5

  • 按位与(&)
    • 只有两个数的二进制同时为1,结果才为1
    • 0 & 0 = 0 0 & 1 = 0
    • 1 & 0 = 0 1 & 1 = 1
  • 按位或(|)
    • 只要两个数的二进制有一个为1,结果为1
    • 0 | 0 = 0 0 | 1 = 1
    • 1 | 0 = 1 1 | 1 = 1
  • 异或(^)
    • 两个数值不同,结果为1
    • 0 ^ 0 = 0 0 ^ 1 = 1
    • 1 ^ 0 = 1 1 ^ 1 = 0
    // 说明 '为分隔符,无实际意义
    4 0000'0100
    5 0000'0101
    10 0000'1010
    4&5 0000'0100 --> 4
    4|5 0000'0101 --> 5
    4^5    0000'0001 --> 1
    4&10>>1    
    // >>优先级大于& >>表示右移
    10>>1 0000'0101 --> 5
    4&10>>1 -->    4&5 --> 4

Files的常用方法

* exits()   文件路径是否存在
* createFile()   创建文件
* createDiectory()  创建文件夹
* delete()     删除文件或目录
* copy()    复制文件
* move()   移动文件
* size()      文件个数
* read()     读取文件
* write()    写入文件

子类和父类的问题

​ 子类不可以继承父类的构造方法,只可以调用父类的构造方法

java内部类

内部类创建对象

​ 静态内部类

​ Outer.Inner inner=new Outer.Inner()

​ 非静态内部类

​ Outer.Inner inner=new Outer().new Inner()

全部评论

相关推荐

会不会进去就面临裁员啊....
MellowWW:我朋友签的美区销售岗,这才是天崩开局
点赞 评论 收藏
分享
03-31 18:02
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务