第一个Typora文档

第一个Typora文档

1.编写输出hello world
public class Test01{
    public static void main(String[] args){
        System.out.println("hello world);
    }
}

记录第一个Typora文件输出hello world

第二天-面试题

1.String类能被继承吗

不能被继承,因为String类被final修饰,而被final修饰的类是不能被继承的

2.String、StringBuffer、StringBuilder的区别
  • String是属于字符常量、而后两者属于字符变量
  • StringBuffer是属于线程安全的,因为在appen()方法上添加了 synchronized,而StringBuilder不安全
3.ArrayList和LinkedList的区别
  • ArrayList是基于动态数组的,Linkedlist是基于链表的
  • 对于数据的访问,通过get/set方法时,ArrayList比较方便,LinkedList要移动指针
  • 对于数据的添加和删除,LinkedList比较方便
4.类的实例化顺序
  • 通常来说:静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象
    (变量)只初始化一次,而非静态对象(变量)可能会初始化多次
  • 父类优先于子类进行初始化
  • 按照成员变量的顺序进行初始化
5.抽象方法和接口的区别,类可以继承多个类吗,接口可以继承多个接口吗,类可以实现多个接口吗
  • 抽象方法可以有实现方法,接口在jdk1.8后才可以有自己的实现方法
  • 抽象类的方法必须由子类继承实现,接口必须由实现类实现
  • 子类只能继承一个父类,接口可以实现多继承

第三天-面试题

1.反射中Class.forName和ClassLoader的区别
  • ClassLoader是类加载器,通过类的全限名描述文件的二进制字节流,将.class文件加载到jvm中
  • Class.forName()方法内部也是在内部调用ClassLoader来实现的,但会对类初始化,执行类中的静态代码块

第四天-面试题-操作系统和jvm

1.进程和线程的区别、协程
  • 进程是系统进行资源分配的最小单位
  • 线程是进程的实体,是程序执行的最小单位,一个进程可以有多个线程,多个线程可以并发进行
  • 协程是比线程更轻量级的存在,一个线程内可以有多个协程
2.进程同步的几种方式
  • 管道、消息队列、信号量、共享内存
3.线程同步的几种方式
  • 临界区、信号量、互斥量、事件
4.死锁的四个必要条件、解决死锁的基本策略
  • 互斥、占有并等待、非抢占、循环等待

  • 死锁预防、死锁检测、死锁解除、驼峰策略

5.jvm的内存结构
  • 程序计数器
  • 虚拟机栈
  • 本地方法区
  • 方法区
6.在java中哪些可以作为Gc root
  • 虚拟机栈(栈桢中的本地变量表)中引用的对象
  • 方法区中类静态属性引用的对象
  • 方法区中常量引用的对象
  • 本地方法栈中 JNI(即一般说的 Native 方法)引用的对象
7.jvm中有哪几种垃圾收集器,各自的优缺点(主要对CMS和G1优缺点进行分析)
  • 串行收集器:简单高效,但是在进行垃圾收集时需要暂停其它线程,直到收集结束,中间的停顿时间比较长
  • 并行收集器:采用吞吐量优先,主要在于控制吞吐量,从而减少Gc的停顿时间,但是导致Gc的次数变
  • CMS:以获取最短回收停顿时间为目标的垃圾回收器,主要基于标记-清除,主要步骤有-初始标记、并发标记、重新标记、并发清除
  • G1:可预测停顿的回收器:主要基于标记-整理,主要步骤有-初始标记、并发标记、最终标记、筛选回收
  • CMS会对CPU要求高,并且无法处理浮动垃圾,是标记-清除,所有会有很多内存碎片
  • G1缺点是将内存划分了很多块,所以对内存段的大小要求很高
8.操作系统的四大特性:
  • 并发:同一时间内多个程序执行
  • 共享:系统中的资源可以被内存中的多个进程线程共同使用
  • 虚拟:通过时分复用和空分复用将一个物理实体虚拟为多个
  • 异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进
9.在浏览器输入一个url到返回响应的过程
  • https://www.nowcoder.com/discuss/tiny/619628?channel=666&source_id=feed_index_nctrack&fromIframe=true
10.Java基础方面
  • Java核心方面,集合,多线程,异常处理,IO,JDBC,面向对象技能,大概率会问到
  • 数据库方面,会写增删改查的SQL语句,知道存储过程之类的概念,会通过索引优化查询条件,会建表,会些诸如子查询,group by,having,表关联查询等基本SQL技能,这里请注意,至少得用过一种商业化数据库。
  • 综合技能方面,能知道基本的数据结构知识(线性表外带排序外带一些树的技能),基本的操作系统知识(一般仅限于线程进程概念),基本网络通讯知识(一般仅限于网络通讯模型和tcp udp协议),但这仅仅是“需要知道”而已。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值