java之万丈高楼平地起

8种基本数据类型

数据类型位数梯度位数
byte(位)第一梯度8
boolean(布尔值)第一梯度8
short(短整数)第二梯度16
char(字符)第二梯度16
int(整数)第三梯度32
float(单精度)第三梯度32
double(双精度)第四梯度64
long(长整数)第四梯度64

重写和重载

(1)重写:子类重写父类的方法
(2)重载:存在于父类和子类,同类之间(入参个数,类型,顺序,返回值类型不同)
(3)重写不能抛出新的异常

https://www.runoob.com/java/java-override-overload.html

访问修饰符

类中的数据成员和成员函数据具有的访问权限包括:public、private、protect、default(包访问权限)
作用域		当前类	同一package	子孙类	其他package 
public   	√    	√         	√       √ 
protected   √      	√           √       × 
default     √       √           ×       × 
private     √       ×           ×       × 

public           所有类可见
protected      	 本包和所有子类都可见(本包中的子类非子类均可访问,不同包中的子类可以访问,不是子类不能访问)
default          本包可见(即默认的形式)(本包中的子类非子类均可访问,不同包中的类及子类均不能访问)
priavte          本类可见

多线程问题

1.实现多线程的方法
(1)继承线程类Thread(重写run方法,start方法启动)
(2)实现Runnable接口(重写run方法,start方法启动)
(3)实现Callable接口(1.5后增加的)
(4)使用线程池(1.5后增加的)

2.sleep()方法与wait()方法区别
(1)Thread.sleep() 不会释放锁 时间到了唤醒
(2)Object.wait() 会释放锁 notify()/notifyAll():唤醒(不可以在非同步方法中使用上述三个方法)

3.synchronized和lock
(1)修饰方法或者代码块
(2)synchronized是java内置关键字,在jvm层面,Lock是个接口
(3)ynchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁),Lock需在finally中手工释放锁(unlock()方法释放锁),否则容易造成线程死锁
(4)Lock锁适合大量同步的代码的同步问题,synchronized锁适合代码少量的同步问题

4.进程和线程的区别
(1)进程是资源分配最小单位,线程是程序执行的最小单位
(2)进程之间的资源是独立的;同一进程内的线程共享本进程的资源

https://www.cnblogs.com/xiaoyinger/p/11614587.html

5.线程池

https://www.cnblogs.com/victorwux/p/9004564.html

servlet的生命周期

(Java编写的服务器端程序)
1.加载和实例化servlet
2.初始化 init()
3.请求处理 service()
4.服务终止 destroy()

https://blog.csdn.net/weixin_37020977/article/details/88787273
https://www.runoob.com/servlet/servlet-life-cycle.html

hashmap相关

(1)HashCode相同,通过equals比较内容获取值对象
(2)HashMap和HashTable的区别,hashTable是线程安全的,不允许为null键
(3)hashmap允许key和value为null

--  ==和equals的区别
https://blog.csdn.net/weixin_42194781/article/details/104388930
jeff: https://blog.csdn.net/qq_36760847/article/details/106689291

-- 关于hashcode
https://www.cnblogs.com/lanSeGeDiao/p/10813588.html

堆、栈、常量池

(1)常量池:存放常量,堆:存放用new产生的数据,堆:存放用new产生的数据

https://www.cnblogs.com/SaraMoring/p/5687466.html

String 和 StringBuilder、StringBuffer

(1)StringBuilder 的方法不是线程安全的,StringBuffer是线程安全的

https://blog.csdn.net/u011702479/article/details/82262823

java 容器

https://www.cnblogs.com/goody9807/p/6441114.html

ArrayList、Vector、LinkedList

(1)ArrayList与Vector来说底层都是用数组方式来实现的
(2)对于ArrayList来说所有方法都不是同步的,对于Vector大部分public的方法都是同步的
(3)对于ArrayList查找速度非常快,增加和删除操作非常慢。(本质上是由数组的特点来决定的)
(4)对于LinkedList查找速度非常慢,增加和删除操作非常快。(本质上是由双向循环链表的特点来决定的)

并发和并行的区别

https://blog.csdn.net/weixin_30363263/article/details/80732156?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare

JDK7、JDK8的新特性

JDK1.7:
(1)switch 支持 String
(2)单catch处理多异常
JDK1.8:
(1)虚拟扩展方法
(2)Java 8 Lambda 表达式(语法糖)

https://blog.csdn.net/csdnlijingran/article/details/88855000
-- 双冒号
https://blog.csdn.net/u012784162/article/details/106538516?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-9.compare
-- 对 Stream 中 Map 与 ForEach 做个简单说明
https://blog.csdn.net/weixin_33937913/article/details/89565453

srpingMVC

1.原理架构 注解
(1)用户发送请求至前端控制器DispatcherServlet。
(2)DispatcherServlet收到请求调用HandlerMapping处理器映射器
(3)HandlerMapping生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
(4)DispatcherServlet调用HandlerAdapter处理器适配器
(5) HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)
(6)Controller执行完成返回ModelAndView
(7)HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
(8)DispatcherServlet将ModelAndView传给ViewReslover视图
解析器
(9)ViewReslover解析后返回具体View
(10)DispatcherServlet根据View进行渲染视图
(11)DispatcherServlet响应用户
2.流程

https://www.cnblogs.com/fengquan-blog/p/11161084.html

spring的事务隔离

https://blog.csdn.net/qq_38526573/article/details/87898730

Dubbo&Zookeeper

什么是zookeeper -- 分布式协调服务
https://www.jianshu.com/p/e2c3caa80e8e

-- ZooKeeper面试题(2020最新版)
https://blog.csdn.net/ThinkWon/article/details/104397719?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

-- Kafka 和 ZooKeeper 的分布式消息队列
https://blog.csdn.net/weixin_42117918/article/details/85000071

https://blog.csdn.net/miss1181248983/article/details/90724870?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase


https://blog.csdn.net/moakun/article/details/82919804?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

spring

1.如何实现事务管理的
2.DI(依赖注入)的几种方式

springboot

-- springboot使用lombok省略set和get方法
https://blog.csdn.net/qq_24095055/article/details/86712042

redis

https://blog.csdn.net/Butterfly_resting/article/details/89668661

数据库

--- 三范式
https://blog.csdn.net/qq_40899182/article/details/81706253

--- oracle 的索引
https://www.cnblogs.com/java-learner/p/9567456.html
https://www.cnblogs.com/jinyuanliu/p/10404646.html

-- 事务隔离
https://baijiahao.baidu.com/s?id=1611918898724887602&wfr=spider&for=pc
https://www.cnblogs.com/Vieat/p/11172784.html

JVM

https://www.cnblogs.com/rong0912/p/12047674.html

高并发

1.高并发:在极短单位时间内,极多个请求同时发起到服务器
2.如何应对高并发
(1)概述

处理方向处理方案
硬件层面建立缓存机制
硬件层面读写分摊(集群)
硬件层面提高单机硬件性能
软件层面良好的查询(分表,分库,索引)
设计层面负载均衡(https://www.cnblogs.com/tuojunjie/p/6215509.html)(http://www.safebase.cn/article-259719-1.html)
设计层面尽可能的采用静态的html(CMS内容管理系统,比较特殊的案例)
设计层面消息队列(将要处理的请求放到队列中,起到削峰和流控的作用)

(2)消息队列

https://blog.csdn.net/java_fenxiang/article/details/80954905

用户请求数据写入消息队列之后就立即返回给用户了,但是请求数据在后续的业务校验、写数据库等操作中可能失败。因此使用消息队列进行异步处理之后,需要适当修改业务流程进行配合,比如用户在提交订单之后,订单数据写入消息队列,不能立即返回用户订单提交成功,需要在消息队列的订单消费者进程真正处理完该订单之后,甚至出库后,再通过电子邮件或短信通知用户订单成功,以免交易纠纷。这就类似我们平时手机订火车票和电影票(对于不需要实时处理的请求来说,当并发量特别大的时候,可以先在消息队列中作缓存,然后陆续发送给对应的服务去处理)
(2)kafka面试题

https://blog.csdn.net/qq_23160237/article/details/88376561?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2

https://blog.csdn.net/qq_28900249/article/details/90346599
--- 针对高并发系统的解决思路与方案
https://blog.csdn.net/Q3838418/article/details/81988598

MyBatis

https://blog.51cto.com/14442094/2423256
https://www.jianshu.com/p/e8f294f6704b
https://www.cnblogs.com/jiezai/p/11319124.html
-- 缓存机制
https://zhuanlan.zhihu.com/p/106258135

问必答资源

https://www.cnblogs.com/java1024/p/8622195.html

https://blog.csdn.net/weixin_43495390/article/details/86533482

https://blog.csdn.net/eaphyy/article/details/89312277

https://blog.csdn.net/yelvgou9995/article/details/105979827?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

较全面
https://blog.csdn.net/jackfrued/article/details/44921941
https://blog.csdn.net/sinat_35512245/article/details/59056120
https://www.nowcoder.com/discuss/3043?type=2&order=0&pos=5&page=2
https://www.jianshu.com/p/1b2f63a45476

Java 最常见的 200+ 面试题:面试必备

https://blog.csdn.net/sufu1065/article/details/88051083
···
## 传送门
https://blog.csdn.net/weixin_43495390/article/details/104034471

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值