Java EE

2020Java面试题及答案,刷这些题,准没错!

十年热恋 提交于 2020-08-12 00:10:35
Java基础 1.JDK JRE 2. Java异常了解吗?说说平时遇到的异常?说出6种常见的java异常。写程序遇到过哪些异常 运行时异常有哪些 3. 面向对象 面对对象的几大特性 多态怎么理解 4. 修饰符:public;protect;default;private优先级 5. 对string类的理解。stringbuffer 和 stringbuilder 6. 反射机制介绍一下 7. bio,nio,aio分别介绍一下,nio的实现方式 8. 问了public等变量定义修饰词的时间域 9. 问了反射机制,还有问了动态代理的好处和坏处,好处答不上来 10. 接口和抽象类的区别。 11. 有一个public static final的HashMap,里边对象的属性能不能修改? 12. 为什么java 平台无关性 机器码和字节码区别 JVM加载代码的一个流程 13. java数据类型以及自己的应用 自动拆箱和自动装箱以及自己的应用即什么时候用到的,列举几种情况 14. 什么是值传递和引用传递,区别及应用 15. 重载和重写 16. static方法是否能重写,接口和抽象类的区别 17. 你觉得java是一种什么样的语言以及java特性 18. lamda表达式了解吗?1.8新特性有什么?(面试宝典对接口抽象这个问题是错的,过时了) 19. 内存泄露怎么造成的,怎么排查 20.

前端 http大文件断点续传上传

不想你离开。 提交于 2020-08-12 00:04:21
java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1、服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作 2、服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求 3、服:每接收到一个Socket就建立一个新的线程来处理它 4、客:利用Socket进行远程连接,询问已上传进度 5、客:使用FileInputStream.skip(long length)从指定位置读取文件,向服务器发送文件流 6、服:接收客户端输入流,使用RandomAccessFile.seek(long length)随机读取,将游标移动到指定位置进行读写 7、客/服:一个循环输出,一个循环读取写入 8、示例:以下是具体代码,仅供参考 文件介绍: FileUpLoadServer.java(服务器接收文件类) FileUpLoadClient.java(客户端发送文件类) FinalVariables.java(自定义参数类) SocketServerListener.java(JavaWeb启动Socket操作类) web.xml(配置文件,跟随项目启动) 断点上传(服务端) package com.cn.csdn.seesun2012.socket; import java.io

bookStore第三篇【用户模块、购买模块、订单模块】

孤者浪人 提交于 2020-08-11 23:31:32
用户模块 要登陆后才能购买,因此我们先写购买模块 设计实体 private String id; private String username; private String password; private String email; private String cellphone; private String address; //各种setter、getter 设计数据库表 CREATE TABLE user ( id VARCHAR ( 40 ) PRIMARY KEY , username VARCHAR ( 20 ) NOT NULL , cellphone VARCHAR ( 20 ) NOT NULL , address VARCHAR ( 40 ) NOT NULL , email VARCHAR ( 30 ), password VARCHAR ( 30 ) NOT NULL ); 编写DAO /** * 用户的登录注册模块 * 1:登陆 * 2:注册 * 3:根据id查找具体的用户 */ public class UserDaoImpl { public void register (User user) { QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource());

Hibernate 与 Mybatis 如何共存?打破你的认知!

僤鯓⒐⒋嵵緔 提交于 2020-08-11 23:30:33
很长一段时间,网上有很多关于Hibernate与Mybatis孰优孰劣的争论,两个阵营的人谁也不能说服谁,每个人的理由都很有道理。 今天,我分享的主题是: 在一个项目中同时使用Hibernate和Mybatis两个ORM框架。 作为一个开发者,没有必要花费过多的时间去证明技术无用论,当你开始指责某个框架垃圾,另外一个框架最好时,隐性的暴露出你对某个框架没有深入的研究,无知的指责对于技术的提升没有任何的帮助。 框架本身没有对错一说,只有适合和更适合项目的选择。任何框架都有自身的能力范围,就拿Hibernate和Mybatis这两个ORM框架来说。 Hibernate封装了很多有用的API给开发者,降低了操作数据库的难度和复杂度,同时也减少了模板代码的数量,但Hibernate留给开发者可操作的空间相对Mybatis少了很多。 Mybatis框架使用起来很灵活,开发者可以自定义查询语句,但增加了模板代码的数量,看起来没有Hibernate那么便捷。 两种框架在便捷与灵活两个指标上做出了取舍与妥协,这不能说是框架的错。对于一个框架而言,需要有自身专注的领域和设计愿景,不可能面面俱到。 使用任何一种技术框架,都需要贴合现实的业务需求以及自身的技术能力。当你还没有深入的去了解一门技术或者当前业务需求无法与框架契合时,不要盲目的批判框架的好坏。 今天

kafka随机写

六月ゝ 毕业季﹏ 提交于 2020-08-11 23:13:51
设计目标 时间复杂度O(1)的方式提供消息持久化能力的。即使TB级别以上数据也能保证常数时间的访问性能,单机支持每秒100K条消息的传输。 特点: 高吞吐量。 消息持久化。 分布式。 消费消息采用Pull模式。 支持Online和Offine场景,同时支持离线数据处理和实时数据处理。 Kafka的基本存储单元是分区(Partition),在一个Topic中会有一个或 多个Partition,不同的Partition可位于不同的服务器节点上,物理上一个Partition对应于一个文件夹。需要注意的是,Partition不能在多个服务器节点之间再进行细分,也不能在一台服务器的多个磁盘上再细分,所以其大小会受挂载点可用空间的限制。 Partition内包含一个或多个Segment,每个Segment又包含一个数据文件和一个与之对应的索引文件。虽然物理上最小单位是Segment,但是Kafka并不提供同一个Partition内不同Segment的并行处理能力。对于写操作,每次只会写Partition内的一个Segment;对于读操作,也只会顺序读取同一个。 消息重复解决方案 3.1 消费偏移量: kafka在设计上不同于其他JMS队列的地方是生产者的消息不需要消费者确认,而消息在分区中又都是顺序排列的,那么必然就可以通过一个偏移量(offset)来确定每一条消息的位置。

springboot1.5.9升级springboot2.0.5

大兔子大兔子 提交于 2020-08-11 22:17:16
占坑 springboot1.5.9升级springboot2.0.5 此升级只适应于参考(本公司暂时正常运行) 原文链接 官网翻译 spring-cloud 组件 springboot 版本 <version>2.0.5.RELEASE</version> springcloud 版本 <version>Finchley.RELEASE</version> eureka-server 替换 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> eureka-client 替换 2.0.X guava scope 为runtime 项目引用不到 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava<

SpringMVC实现浏览器端大文件分块上传

强颜欢笑 提交于 2020-08-11 22:16:53
前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践。该博客重在实践。 一. Http协议原理简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 简单来说,就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范,这个规范就是HTTP协议。 1.特点: (1)支持客户/服务器模式。 (2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 (3)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 (4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 (5

JSP页面导出PDF格式文件

梦想的初衷 提交于 2020-08-11 21:57:55
JSP页面导出PDF格式文件基本在前端页面可以全部完成 <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script> 添加下载链接的点击事件 <script type="text/javascript"> var downPdf = document.getElementById("downLoad"); downPdf.onclick = function() { downPdf.parentNode.removeChild(downPdf); html2canvas(document.body, { onrendered:function(canvas) { var contentWidth = canvas.width; var contentHeight = canvas.height; //一页pdf显示html页面生成的canvas高度; var pageHeight = contentWidth / 592.28 * 841.89; /

idea springboot 访问jsp问题 404

主宰稳场 提交于 2020-08-11 21:17:04
前提场景:以前的大量web项目是用jsp写的,改到springcloud中templates中不支持jsp网页。 1.在resources同级目录下新建一个webapp 2.到Project Settings->Modules->Web下把webapp路径添加进去 3.在pom.xml添加jsp支持 1 <!-- jsp支持--> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-tomcat</artifactId> 5 <scope>provided</scope> 6 </dependency> 7 8 <dependency> 9 <groupId>org.apache.tomcat.embed</groupId> 10 <artifactId>tomcat-embed-jasper</artifactId> 11 <scope>provided</scope> 12 </dependency> 4.在application.properties添加jsp访问路径 1 spring.mvc.view.prefix=/ 2 spring.mvc.view.suffix=.jsp 5.这时候看你项目的编译路径C:\Users

SpringCloudAlibaba笔记(七):RocketMQ--消息驱动

左心房为你撑大大i 提交于 2020-08-11 20:11:24
文章目录 7.1 MQ简介 7.1.1 什么是MQ 7.1.2 MQ的应用场景 7.1.2.1 异步解耦 7.1.2.2 流量削峰 7.1.3 常见的MQ产品 7.2 RocketMQ入门 7.2.1 RocketMQ环境搭建 7.2.1.1 环境准备 7.2.1.2 安装RocketMQ 7.2.1.3 启动RocketMQ 7.2.1.4 测试RocketMQ 7.2.1.5 关闭RocketMQ 7.2.2 RocketMQ的架构及概念 7.2.3 RocketMQ控制台安装 7.3 消息发送和接收演示 7.3.1 发送消息 7.3.2 接收消息 7.4 案例 7.4.1 订单微服务发送消息 7.4.2 用户微服务订阅消息 7.5 发送不同类型的消息 7.5.1 普通消息 7.5.2 顺序消息 7.5.3 事务消息 7.6 消息消费要注意的细节 7.1 MQ简介 7.1.1 什么是MQ MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。 7.1.2 MQ的应用场景 7.1.2.1 异步解耦 最常见的一个场景是用户注册后,需要发送注册邮件和短信通知,以告知用户注册成功。传统的做法如下: 此架构下注册、邮件、短信三个任务全部完成后,才返回注册结果到客户端,用户才能使用账号登录。但是对于用户来说