
面试
ClawHub的技术分享
这个作者很懒,什么都没留下…
展开
-
这是标题666
这是内容原创 2021-08-31 22:51:29 · 185 阅读 · 0 评论 -
面试【JAVA基础】其他
1、自定义注解@target说明了Annotation所修饰的对象范围: constructor、method、field、package、type等等。@retention定义了该Annotation被保留的时间长短, source(源文件保留)、class( class保留)、runtime(运行时有效)。@inherited某个被标记的类型是被继承的。一个类标记了带有@...原创 2019-12-18 22:54:27 · 149 阅读 · 0 评论 -
面试【JAVA基础】JVM
1、内存模型1.1、堆堆是所有线程共享的,主要存放对象实例和数组。新生代和老年代的比例是1:2。新生代中三个区域的比例是 8 : 1 : 1。1.1.1、新生代对象分配在eden区中,当eden区满时会触发minor gc,将eden区中存活的对象,复制到survivor0区中,清空eden区,当survivor0中满了时,会将存活的对象复制到survivor1区...原创 2019-12-18 22:52:48 · 224 阅读 · 0 评论 -
面试【JAVA基础】Web与网络
1、转发与重定向的区别转发是服务器请求资源,服务器直接访问目标地址url,把响应内容返回给浏览器。 重定向根据服务器返回的状态码重新请求地址。转发是服务器行为,重定向是客户端行为。转发显示的url不变而重定向显示新的url。转发页面和转发到的页面共享request的信息,重定向不共享数据。转发一般用于用户登录,根据角色转发到响应的模块, 重定向一般用于用户注销,跳...原创 2019-12-18 22:51:35 · 123 阅读 · 0 评论 -
面试【JAVA基础】类加载机制
1、类加载过程1.1、加载查找和导入class文件。1.2、链接验证检验载入的class文件的正确性,完整性。准备给类的静态变量分配存储空间,会赋对象类型的默认值。解析将class常量池中的符号引用转换成直接引用。符号引用和直接引用的区别:符号引用:java编译阶段不知道所引用的对象的实际地址,使用符号引用来代替直接引用:能够直接定位到对象的指...原创 2019-12-18 22:50:13 · 237 阅读 · 0 评论 -
面试【JAVA基础】锁
1、锁状态锁的状态只能升级不能降级。无锁没有锁对资源进行锁定,所有线程都能访问并修改同一个资源,但同时只有一个线程能修改成功。其他修改失败的线程会不断重试,直到修改成功,如CAS原理和应用是无锁的实现。偏向锁偏向锁是指一段同步代码一直被一个线程访问,那个该线程会自动获取锁,降低获取锁的代价。轻量级锁是指当锁是偏向锁的时候,被另外的线程所访问,偏向锁就会升级为轻量级锁,其...原创 2019-12-18 22:48:57 · 424 阅读 · 0 评论 -
面试【JAVA基础】阻塞队列
1、五种阻塞队列介绍ArrayBlockingQueue有界队列,底层使用数组实现,并发控制使用ReentrantLock控制,不管是插入操作还是读取操作,都需要获取锁之后才能执行。LinkedBlockingQueue底层基于单向链表实现,既可以当做有界队列,也可以当做无界队列使用。使用两个ReentrantLock实现并发控制:takelock和putlock。Synch...原创 2019-12-18 22:47:35 · 398 阅读 · 0 评论 -
面试【JAVA基础】集合类
1、ArrayList的扩容机制每次扩容是原来容量的1.5倍,通过移位的方法实现。使用copyOf的方式进行扩容。扩容算法是首先获取到扩容前容器的大小。然后通过oldCapacity (oldCapacity >> 1) 来计算扩容后的容器大小newCapacity。这里用到了>> 右移运算,即容量增大原来的1.5倍。还要注意的是,这里扩充容量时,...原创 2019-12-18 22:46:03 · 159 阅读 · 0 评论 -
面试【JAVA基础】多线程
本次整理的内容如下:1、进程与线程的区别进程是一个可执行的程序,是系统资源分配的基本单位;线程是进程内相对独立的可执行单元,是操作系统进行任务调度的基本单位。2、进程间的通信方式2.1、操作系统内核缓冲区由于每个进程都有独立的内存空间,进程之间的数据交换需要通过操作系统内核。需要在操作系统内核中开辟一块缓冲区,进程 A 将需要将数据拷贝到缓冲区中,进程 B 从缓冲区...原创 2019-12-18 01:01:02 · 186 阅读 · 0 评论