
Java面试
码农老起
10年java开发经验
展开
-
什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。JDK7提供了7个阻塞队列。分别是:ArrayBlockingQueue :一个由数组结构组成的有界阻塞队列。LinkedBlockingQueue :一个由链原创 2022-04-29 16:47:57 · 219 阅读 · 0 评论 -
maven有什么优缺点
优点简化了项目依赖管理 易于上手,对于新手来说了解几个常用命令即可满足日常工作 便于与持续集成工具(jenkins)整合 便于项目升级,无论是项目本身还是项目使用的依赖 maven有很多插件,便于功能扩展,比如生产站点,自动发布版本等缺点Maven是一个庞大的构建系统,学习难度大。(很多都可以这样说,入门容易[优点]但是精通难[缺点]) Maven采用约定约定优于配置的策略,虽然上手容易但是一旦出现问题,难于调试中网络环境较差,很多repository无法访问...原创 2022-04-28 10:11:23 · 731 阅读 · 0 评论 -
Tomcat有几种部署方式
利用Tomcat的自动部署:把web应用拷贝到webapps目录(生产环境不建议放在该目录中)。Tomcat在启动时会加载目录下的应用,并将编译后的结果放入work目录下。使用Manager App控制台部署:在tomcat主页点击“Manager App” 进入应用管理控制台,可以指定一个web应用的路径或war文件。修改 conf/server.xml 文件部署:在 server.xml 文件中,增加Context节点可以部署应用。增加自定义的Web部署文件:在 conf/Catalina/l原创 2022-04-28 10:08:55 · 199 阅读 · 0 评论 -
tomcat 如何优化?
tomcat作为Web服务器,它的处理性能直接关系到用户体验,下面是几种常见的优化措施:掉对web.xml的监视,把jsp提前编辑成Servlet。有富余物理内存的情况,加大tomcat使用的jvm的内存服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。对于高并发情况下会有大量的运算,那么CPU的速度会直接影响到处理速度。内存在大量数据处理的情况下,将会有较大的内存容量需求,可以用-Xmx -Xms -XX:MaxPermSize等参数对内存不同功能块进行划分。我们之前就遇到过内存分原创 2022-04-28 10:07:30 · 646 阅读 · 0 评论 -
Java自动装箱与拆箱
装箱就是自动将基本数据类型转换为包装器类型(int-->Integer);调用方法:Integer的 valueOf(int) 方法 拆箱就是自动将包装器类型转换为基本数据类型(Integer-->int)。调用方法:Integer的 intValue方法 在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行:Integer i = new Integer(10);而在从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象原创 2022-04-28 10:05:31 · 114 阅读 · 0 评论 -
instanceof 关键字的作用
instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法 为:boolean result = obj instanceof Class其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接 或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。 注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能 确定类型,则通过编译,具原创 2022-04-28 10:01:16 · 727 阅读 · 0 评论 -
八种基本数据类型的大小,以及他们的封装类
注: 1.int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值 是null,所以Integer能区分出0和null的情况。一旦java看到null,就知道这个引用还没有指向某个 对象,再任何引用使用前,必须为其指定一个对象,否则会报错。2.基本数据类型在声明时系统会自动给它分配空间,而引用类型声明时只是分配了引用空间, 必须通过实例化开辟数据空间之后才可以赋值。数组对象也是一个引用对象,将一个数组赋值给另 一个数组时只是复制了一个引用,所以通过...原创 2022-04-28 09:59:07 · 129 阅读 · 0 评论 -
面向对象和面向过程的区别
面向对象和面向过程的区别原创 2022-04-27 22:46:33 · 92 阅读 · 0 评论 -
Java语言有哪些特点
Java语言有哪些特点原创 2022-04-27 22:43:50 · 469 阅读 · 0 评论