- 博客(17)
- 收藏
- 关注
原创 Shiro框架-面试篇
Shiro框架-面试篇 1、什么是Shiro? Shiro是一个权限管理的安全框架,可以帮助我们完成认证、授权、加密、会话管理、Web集成和缓存等。 2、三个核心组件: (1)Subject,当前操作用户。 (2)SecurityManager,最核心的组件,是Shiro框架的控制器,通过它来管理内部组件实例,并提供安全管理的各种服务。 (3)Realm,定义了访问数据的方式,用来连接不同的数据源,是Shiro与引用安全数据间的桥梁。 3、Shiro主要的四个组件: (1)SecurityManager,典
2020-11-16 17:22:06 643
原创 Redis、Redis缓存-面试篇
Redis-面试篇 1、Redis是一个基于内存的高性能key-value数据库,支持丰富的数据类型:string、list、set、zset(sorted set,有序集合)、hash。 2、最适合Redis的场景有哪些? (1)会话缓存 (2)全页缓存 (3)队列 (4)排行榜/计数器 (5)发布/订阅 3、为什么redis需要把所有数据都放到内存中去? Redis为了达到最快的读写速度将数据都读取到内存中,并通过异步的方式将数据写入磁盘。(在内存越来越便宜的时代,redis将越来越受欢迎) 4、Red
2020-11-15 21:24:14 152
原创 MQ消息队列-面试篇
MQ消息队列-面试篇 1、什么是消息队列? 消息队列是一种可以存储消息的容器,当我们需要消息的时候可以取出消息供自己使用,并且是有顺序的。 2、为什么要使用消息队列? 简单而言就6个字:解耦、异步、削峰 (1)解耦 (2)异步 (3)削峰 3、消息队列由哪些角色组成? (1)生产者,负责产生消息 (2)消费者,负责消费消息 (3)消息代理,负责存储消息和转发消息。其中,转发消息分为推送和拉取两种方式。 拉取(pull),是指消费者主动从消息代理处获取消息。 无数据积压问题,但是不及时。 推送(push
2020-11-15 21:23:28 233
原创 TCP/IP-面试篇
TCP/IP-面试篇 1、OSI七层模型,开放互连系统参考模型。 应用层 为应用程序提供服务 实现的协议有 HTTP、HTTPS、FTP、SMTP 表示层 数据格式转化、数据加密 会话层 建立、管理和维护会话 传输层 负责进程间的通信 TCP、UDP 网络层 IP选址和路由选择,解决跨网络的主机通信问题 IP 路由器、交换机 数据链路层 提供介质访问和链路管理,解决相邻主机通信问题 ARP 网桥、网卡 物理层 透明地传输比特流 应用的设备有 中继器、集线器、双
2020-11-15 21:19:30 1263
原创 Linux系统及常用指令-面试篇
Linux系统及常用指令-面试篇 1、Linux定义:一个多用户多任务并且支持多线程多cpu的操作系统,拥有良好的用户界面,支持多种处理器架构,移植方便。相比windows而言,它开放源代码。 2、Shell定义:一个命令行解释工具,它将用户输入的命令转化为Linux内核能够理解的语言,是用户使用Linux系统的桥梁。 Linux常用命令: 1、列出指定目录:ls 2、创建目录:mkdir 3、切换目录:cd 4、查看当前路径:pw 5、查看当前进程:ps 6、终止进程:kill 7、执行退出:exit 8
2020-11-15 21:18:39 83
原创 设计模式-面试篇
设计模式-面试篇 1、什么是设计模式? 设计模式是程序员用来解决特定设计问题的尝试和测试的方法。设计模式是代码可用性的延伸。 2、请列举出在JDK中几个常用的设计模式? (1)单例模式,用于Runtime、Calendar等类中。 (Runtime类:查看或控制虚拟机的状态和行为) (Calendar类:提供了很方便的不同日期格式的转换方法) (2)工厂模式,用于各种不可变的类,如Boolean类的静态工厂方法Boolean.valueOf(String),可以直接返回布尔类型的值,不需要开辟内存空间。 (
2020-11-15 21:16:17 190
原创 面向对象编程-面试篇
面向对象编程 什么是面向对象思想? 面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装到对象之中,让对象去实现具体功能细节。 特点: 1、将复杂的事情简单化。 2、面向对象将以前过程中的执行者,转变为了指挥者。 3、面向对象是符合现在人思考习惯的一种思想。 面向对象的三大特征:封装、继承、多态 1、封装:隐藏对象的属性和实现细节,对外仅提供公共方法对其访问。 好处是将变化隔离,便于使用,提高了代码的复用性和安全性。 2、继承:提高代码复用性;继承是多态的前提。 3、
2020-11-15 21:14:52 952
原创 前端知识-面试篇
前端知识 JavaScript定义: JavaScript是一种解释型脚本语言,目的是能够在客户端的网页中增加动态效果和交互能力,实现了用户与网页之间的一种实时的、动态的交互关系。 jQuery定义: jQuery是JavaScript的一个库,对JavaScript进行了封装,可用于简化事件处理,HTML文档遍历,Ajax交互和动画,以便快速开发网站。 Ajax定义: Ajax是一门技术,它提供了异步更新的机制,实现了页面的局部刷新。 JavaScript、jQuery、Ajax之间的关系: jQuery
2020-11-15 21:13:19 87
转载 java后台提示信息弹出框
1 public static void main(String[] args) { 2 //不带图标 3 Toolkit.getDefaultToolkit().beep(); 4 JOptionPane.showMessageDialog(null, “信息”, “标题”, JOptionPane.PLAIN_MESSAGE); 5 //带 ?图标 6 JOptionPane.showMessageDialog(null, “信息”, “标题”, JOptionPane.QUESTI
2020-11-06 09:32:38 3156
原创 验证回文串
验证回文串 package algorithm; /** * 验证回文串 我的思路:先计算出字符串中字母和数字字符的数量,重新组成字符串,大写换为小写,分成前后字符串,后面逆序,然后比较前后字符串是否相同 * * @author Unique-cong * */ public class algorithm_7 { /** * 我的解法:题目是做出来了,但是耗时太久 * * @param s * @return */ public boolean isPalind
2020-09-15 20:39:10 230
原创 有效的字母异位词
有效的字母异位词 解: package algorithm; import java.util.Arrays; import java.util.HashMap; /** * 有效的字母异位词 * * @author Unique-cong * */ public class algorithm_6 { /** * 我的思路:将两个字符串存入hashmap中,统计每个字符出现的次数,然后将两个haspmap进行比较即可。 * 执行用时:19 ms * 内存消耗:40.4
2020-09-14 23:02:16 112
原创 字符串中的第一个唯一字符
字符串中的第一个唯一字符 package algorithm; import java.util.HashMap; /** * 字符串中的第一个唯一字符 * 解题思路:遍历字符串,把每个字符出现的次数记录到HashMap中,第二次遍历字符串,最先找出值为1的字符的索引,即为题解 * @author 周聪 * */ public class algorithm_5 { public int firstUniqChar(String s) { HashMap<Cha
2020-09-14 19:55:23 500
原创 整数反转
整数反转 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200912173235671.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDE4Mjc1MA==,size_16,color_FFFFFF,t_70#pic_cent 解答: package algorithm; impor
2020-09-12 17:34:49 89
原创 反转字符串
反转字符串 package algorithm; import java.util.Scanner; /** * 反转字符串 * @author 周聪 * */ public class algorithm_3 { public String reverseString(char[] s) { int start = 0; int end = s.length - 1; while (start < end) { char tmp = s[start]; s[
2020-09-12 15:50:50 88
原创 反转字符串 II
反转字符串 II 方法 1:暴力 我们直接翻转每个 2k 字符块。 每个块开始于 2k 的倍数,也就是 0, 2k, 4k, 6k, …。需要注意的一件是:如果没有足够的字符,我们并不需要翻转这个块。 为了翻转从 i 到 j 的字符块,我们可以交换位于 i++ 和 j-- 的字符。 解答: package algorithm; import java.util.Scanner; /** * 反转字符串 II * @author 周聪 * */ public class algorithm_2
2020-09-12 11:19:19 192
原创 反转字符串中的单词 III
反转字符串中的单词 III 解答: package algorithm; import java.util.Scanner; /** * 反转字符串中的单词 III * @author 周聪 * */ public class algorithm_1 { public String reverseWords(String s) { StringBuilder sb = new StringBuilder(); int length = s.length
2020-09-11 20:14:35 87
原创 String、StringBuffer、StringBuilder类的区别
String、StringBuffer、StringBuilder类的区别 String 的值 是不可变的,不能被修改。所以这会导致每次对String的操作都会生成新的String对象,不仅效率低下还浪费大量的内存空间。 StringBuffer与StringBuilder则能够被多次修改,并且不产生新的未使用对象,节省内存空间。 而StringBuffer与StringBuilder的区别则是,StringBuilder 线程不安全,属于单线程操作字符串。 StringBuffer线程安全,属于多线程操作
2020-09-11 19:30:15 67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人