Java面经背诵版(一)
Java面经背诵版(一)
文章目录
- Java面经背诵版(一)
- 1、[牛客刷题](https://www.nowcoder.com/exam/oj?page=1&tab=%E7%AE%97%E6%B3%95%E7%AF%87&topicId=295)
- 2、RabbitMQ有以下几种工作模式:
- 3、String、StringBuffer、StringBuilder的区别
- 4、String s与new String的区别
- 5、反射的原理,反射创建类实例的三种方式是什么
- Java反射机制:
- 获取Class类对象三种方式
- 6、JDK动态代理与cglib实现的区别
- 7、谈谈序列化和反序列化
- 8、分布式结构,怎么保证数据一致性
- 9、谈谈SQL注入
- 10、请你说明一下left join和right join的区别
1、牛客刷题
2、RabbitMQ有以下几种工作模式:
简单模式:一个生产者,一个消费者
work模式:一个生产者,多个消费者,每个消费者获取到的消息唯一
订阅模式:一个生产者发送的消息会被多个消费者获取
路由模式:发送消息到交换机并且要指定路由key,消费者指定路由key将队列绑定到交换机
topic模式:将路由键和某个模式进行匹配,此时队列需要绑定在一个模式上
3、String、StringBuffer、StringBuilder的区别
String:
- String类是一个不可变的类,一旦创建就不可修改
- String是final类,不能被继承
- String实现了equals()方法和hashCode()方法
StringBuffer:
- 继承自AbstractStringBuilder,是可变类
- StringBuffer是线程安全的
- 可以通过append方法动态构造数据
StringBuilder:
- 继承自AbstractStringBuilder,是可变类
- StringBuilder是非线程安全的
- 执行效率比StringBuffer高
4、String s与new String的区别
String str = "xuzheng";
String newStr = new String("xuzheng");
String str = “xuzheng”;
先在常量池中查找有没有"xuzheng"这个对象,如果有,就让str指向那个"xuzheng",如果没有,在常量池中新建一个"xuzheng"对象,并让str指向在常量池中新建的对象"xuzheng"。
String newStr = new String(“xuzheng”);
是在堆上建立的对象"xuzheng",在栈中创建堆中"xuzheng"对象的内存地址。
5、反射的原理,反射创建类实例的三种方式是什么
Java反射机制:
Java的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为Java语言的反射机制
获取Class类对象三种方式
- 使用Class.forName静态方法
- 使用类的.class方法
- 使用实例对象的getClass方法
6、JDK动态代理与cglib实现的区别
- java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHander处理;
- cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理
- JDK动态代理只能对实现了接口的类生成代理,而不能针对类
- cglib是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法。因为是继承,所以该类或方法最好不要声明成final
7、谈谈序列化和反序列化
序列化是指将对象转换为字节序列的过程,而反序列化则是将字节序列转换为对象的过程。
Java对象序列化是将实现了Serializable接口的对象转换成一个字符序列,能够通过网络传输、文件存储等方式传输,传输过程中却不必担心数据在不同机器、不同环境下发生改变,也不必关心字节的顺序或其他任何细节,并能够在以后将这个字节序列完全恢复为原来的对象。
8、分布式结构,怎么保证数据一致性
1、规避分布式事务——业务整合
2、经典方案——eBay模式
9、谈谈SQL注入
SQL注入就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最后达到欺骗服务器执行恶意的SQL命令。
1、SQL注入攻击的总体思路
- 寻找到SQL注入的位置
- 判断服务器类型和后台数据库类型
- 针对不同的服务器和数据库特点进行SQL注入攻击
2、应对方法
- 使用正则表达式过滤传入的参数
- 参数绑定
- 使用预编译手段,绑定参数式最好的防SQL注入的方法
10、请你说明一下left join和right join的区别
left join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联结):返回包括右表中的所有记录和左表中联结字段相等的记录
Java面经背诵版(一)相关推荐
- 【2021秋招】Java 面试知识点【精华背诵版】
Java 开发知识点[背诵版] Java 基础 40 语言特性 12 Q1:Java 语言的优点? ① 平台无关性,摆脱硬件束缚,"一次编写,到处运行". ② 相对安全的内存管理和 ...
- Java 面试知识点【精华背诵版】
Java 开发知识点[背诵版] Java 基础 40 语言特性 12 Q1:Java 语言的优点? ① 平台无关性,摆脱硬件束缚,"一次编写,到处运行". ② 相对安全的内存管理和 ...
- 它来了:阿里巴巴Java开发手册泰山版解读
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「阿飞的博客」 <Java开发手册 ...
- 电脑版java运行条件,Java Runtime Environment电脑版-Java Runtime Environment(Java运行环境)8.0.221 x64正式版-蜻蜓手游网...
很多时候我们运行一些软件都提示需要装Java环境,比如本站的<apk傻瓜式改包工具>,也是需要jdk环境才能正常使用的,但是现在官网需要注册账户才能下载,非常的麻烦,今天小编就为大家带来最 ...
- java程序设计 第2版 唐大仕_《Java程序设计(第2版)》唐大仕 源代码
[实例简介] <Java程序设计(第2版)>唐大仕 清华大学出版社 北方交通大学出版社 [实例截图] [核心代码] bbe30560-8619-4a35-a024-50004cc5c8e2 ...
- java下载pdf6_疯狂java讲义第6版 电子版(pdf格式)
疯狂java讲义第6版pdf是李刚打造的经典java编程图书的最新版,为了帮助更多的读者能真正掌握Java编程,感受到Java语言的魅力,领会到Java编程的快乐,作者根据多年来的Java授课经验,精 ...
- 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》
文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...
- 一份我们团队Java开发的开发规范,参考了阿里巴巴Java开发手册终极版v1.3.0
编程规约 For variable name, always use English with lowerCamelCase. space in comment: bad example: Sugge ...
- java开发者工具开源版_JArchitect对Java开源贡献者免费
java开发者工具开源版 JArchitect是用于Java代码库的静态分析工具,它提供交互式GUI和HTML报告,用于查找代码中过于复杂或有问题的区域,执行分析以重构并比较随时间的变化. 在版本3中 ...
- 深入理解java虚拟机 (三) 第二版
参考资料 本书名为"深人理解Java虚拟机",但要想深人理解虚拟机,仅凭- -本书肯定是远远不够的,读者可以通过以下信息找到更多关于Java虚拟机方面的资料.我在写作此书的时候,也 ...
最新文章
- 求合体电脑版_SCP CB 电脑移植版测评
- 【Android NDK 开发】Kotlin 语言中使用 NDK ( 创建支持 Kotlin 的 NDK 项目 | Kotlin 语言中使用 NDK 要点 | 代码示例 )
- 关键词提取_NLP 关键词 提取 实战 案例
- 万字长文深入理解java中的集合-附PDF下载
- drupal启动过程
- 数组对象的过滤(取出一项中的某些字段)
- XNA中的中文输入(一)
- ubuntu下安装配置 JDK7
- 记一次rm -rf之后的数据恢复操作
- b和kb的换算_b和mb的换算(b kb mb换算)
- html如何加黑色蒙板,Photoshop中怎么添加黑色蒙版?
- 《三体3:死神永生》读后感
- 谈谈对springboot的理解
- 新版白话空间统计(25):方向分布(标准差椭圆)
- 飞思卡尔单片机PLL时钟总线模块
- 维智科技时空AI技术赋能金融行业
- 互联网安全初创企业Cylance获 1 亿美元融资
- [重装系统系列]fcitx 小企鹅输入法 安装 in ubuntu 15.04
- 【人工智能】AI 公司:DeepMind 公司传
- 【Solidswork】Solidswork如何画真实螺纹
热门文章
- 通过Universal Link进行微信分享
- Android文字转语音
- EasyDarwin接口的使用——使用C++编写客户端实现与EasyDarwin服务器的交互
- 母亲节微信公众号走心文章就用来逗编辑器排版
- 【Android病毒分析报告】- 手机支付毒王“银行悍匪”的前世今生
- 超市登录系统 java_超市订单管理系统,登录功能实现
- uygurqa输入法android,uygurqa维语输入法2021
- android 修改手机型号加点,修改Android设备信息,如修改手机型号为iPhone7黄金土豪版! -电脑资料...
- 计算机专业专业课代号408,计算机408有多难
- 参考文献查阅网站大全