自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除