首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

后端 | Java 利用substring()和indexOf()字符串获取指定字符

代码: @Test void spiltStrDemo() { /* * str.substring(4, 9); -->在str截取从下标4开始(包含),到下标...9之间字符(不包含9) * str.indexOf("/"); -->返回str“/”第一次出现时下标 * str.indexOf("/", 5); -->返回跳过...,我们要从str取出name->Riven String riven = str.substring(4, 9); // 这里传入R下标4,再传入第二个“/”下标9,拿到就是Riven...id = str.substring(0, str.indexOf("/")); /*善于思考同学已经发现,第二种情况我们只能获取id,想拿后面其他数据就很难办了,因为我们有两个“...”之间数据就是我们name字段了 // indexOf()可以传两个参数,第一个是要寻找字符串,第二个是哪个下标位置开始寻找,这里传入i+1就是跳过了第一个“/”之前下标

3.1K40

共享密钥加密与公开密钥加密

恩尼格玛密码机 第二次世界大战,德军所用”恩尼格玛密码机“使用加密方式就是共享密钥加密,我们熟知英国数学家「艾伦·图灵」就破解了这个密码机生成文,在二战为英国做了很多贡献,比如著名“诺曼底登陆...然后,用获取公开密钥加密要发送数据。 最后,把文发送给B B用私有密钥对收到文进行解密,取得原本数据。这种情况就不需要为每个发送对象都准备对应密钥了。...,整个发送与接收过程,没有发生任何问题,因此A也察觉不到数据已经泄漏,这种通过中途替换公开密钥来窃听数据攻击方法就叫做「中间人攻击」。...X用B生成公开密钥PB加密数据 X把文发送给B,这个文由B发出公开密钥PB加密而成,所以B可以用自己私有密钥SB来解密,收到文到解密密文都没发生任何问题,因此B也不可能意识到自己已经被窃听...* @param publicKey 公钥 * @return 文 * @throws Exception 加密过程异常信息 */ public

2.7K30

ssm注册功能使用MD5加密简单案例

1.什么是MD5 MD5加密全程是Message-Digest Algoorithm 5(信息-摘要算法),它对信息进行摘要采集,再通过一定位运算,最终获取加密后MD5字符串。...2.MD5加密特点主要有以下几点: 1、针对不同长度待加密数据、字符串等等,其都可以返回一个固定长度MD5加密字符串。...3、运算简便,且可实现方式多样,通过一定处理方式也可以避免碰撞算法破解。   4、对于一个固定字符串。数字等等,MD5加密后字符串是固定,也就是说不管MD5加密多少次,都是同样结果。...(); // 把文转换成十六进制字符串形式 int j = md.length; char str[] = new char[...传进来密码+UUID获取随机数 user.setPassword(MKUtil.MD5(password+user.getSalt())); userDao.register

34710

【Shiro】第三章 Shiro入门

图中方法体可以看到,当前对象是Realm类对象,即将调用方法是doGetAuthenticationInfo(token)。而这个方法,就是你即将要重写方法。...你在doGetAuthenticationInfo编写了查询数据库代码,并将数据库存放用户名与密码封装成了一个AuthenticationInfo对象返回。...可以看到下图中,info这个对象是有值,说明数据库查询出来了正确帐号密码 (6)那么,接下来就很简单了。把用户输入帐号密码与刚才你数据库查出来帐号密码对比一下即可。...再从我们重写doGetAuthorizationInfo方法获取数据库查询到权限集合。 5、Realm将用户传入权限对象,与数据库查出来权限对象,进行一一对比。...如果用户传入权限对象在从数据库查出来权限对象,则返回true,否则返回false。 进行授权操作前提:用户必须通过认证。 在真实项目中,角色与权限都存放在数据库

12820

并发容器类

该队列是非阻塞,如果从一个空ConcurrentLinkedQueue获取值,会返回null。因此,ConcurrentLinkedQueue中元素不允许有空值。...在生产者-消费者模式,所有消费者共享一个工作队列,而在工作,每个消费者都各自有自己一个双端队列。...如果一个消费者完成了自己双端队列全部工作,那么它可以其他消费者双端队列末尾秘密地获取工作。...“写入时复制”容器线程安全性在于:只要正确发布一个事实不可变对象,那么在访问该对象时就不需要再进一步同步。显然,每当修改时都会复制底层数组,这需要一定开销,尤其是数组规模较大时。...在HashMap和synchronizedMap获取Map锁能防止其他线程访问这个Map。

45230

常见加密,编码及Hash等 | Java 开发实战

,对程序重要字符串进行加密,防止反编译查看等,今天我们就来看一下各种加密方式, 对称加密 使用秘钥和加密算法对数据进行转换,得到无意义数据以为文;使用秘钥和解密算法对文进行逆向转换,得到数据即为原数据...用途 让原数据具有字符串所具有的特性,如可以放在 URL 传输,可以保持到文本文件,可以通过普通聊天软件进行文本传输 把原本人眼可读字符串变成不可读字符串,降低偷窥风险 Base64 加密传输图片...序列化 把对象(一般是在内存)转换成字节序列过程 java 序列化机制 目的:让内存东西可以被存储和传输 序列化是编码吗?...严格来说不是编码,编码是将 A 格式 转为 B 格式,并且可以任意相互转换,但是序列化是将内存对象序列化为字节过程。其实都差不多,就看你怎么理解了。...HashMap数据结构是数组+链表形式,通过hashCode获取对应下标,然后在判断是否需要保存数据。 在保存数据时候是通过 key 来保存,这个键必须是惟一

78520

2020最新总结大厂Java高频面试题(含答案解析)

具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码编译器 javac,还包含了很多 java 程序调试和分析工具。...需要注意Jdk 1.8HashMap实现做了优化,当链表节点数据超过八个之后,该链表会转为红黑树来提高查询效率,原来O(n)到O(logn) 24....poll() 和 remove() 都是队列取出一个元素,但是 poll() 在获取元素失败时候会返回空,但是 remove() 失败时候会抛出异常。 30. 哪些集合类是线程安全?...Iterator是Java迭代器最简单实现,为List设计ListIterator具有更多功能,它可以两个方向遍历List,也可以List插入和删除元素。 33....ListIterator实现了Iterator接口,并包含其他功能,比如:增加元素,替换元素,获取前一个和后一个元素索引,等等。

2.2K20

基于JAVARSA非对称加密算法简单实现

RSA实现   在我们JAVA,我们可以使用RSA生成公钥和私钥,公钥可以直接放在H5,APP等前端程序,即使被拿到,想要用公钥破解出私钥也是极难。...可以先决定密钥长度后生成一套一对一关系公私钥。公钥提供给前端,私钥放在服务端。 通过RSA公钥加密明文,加密后文发到服务端,服务端用RSA私钥解密得出明文。...keyMap = new HashMap(); /** * 随机生成密钥对 */ public static Map genKeyPair...* @param publicKey 公钥 * @return 文 * @throws Exception 加密过程异常信息 * NoSuchAlgorithmException...* @param privateKey 私钥 * @return 明文 * @throws Exception 解密过程异常信息 * BadPaddingException

78040

java面试知识要点汇总(基础和集合)

java技术允许使用finalize()方法在垃圾收集器将对象内存清除出去之前做必要清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用。...接口不能包含构造器,抽象类可以包含构造器,抽象类里构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类初始化操作。 接口里不能包含初始化块,但抽象类里完全可以包含初始化块。...StringBuffer对象可以通过length()方法获取实体存放字符序列长度,通过capacity()方法来获取当前实体实际容量。...实际开发,例如我们要获取某个方法调用日志,可以通过 AOP(动态代理机制)给方法添加切面,通过反射来获取方法包含注解,如果包含日志注解,就进行日志记录。...值 HashMap比较快,因为是使用唯一键来获取对象 HashSet HashSet实现了Set接口 HashSet仅仅存储对象 使用add()方法将元素放入set HashSet使用成员对象来计算

90630

【Java】12 Map 集合

key 和 value 之间存在单向一对一关系,即通过指定 key,总能找到唯一、确定 value。 Map 取出数据时,只要给出指定 key,就可以取出对应 value 数据。...1.1.1 常用方法 方法名 说明 void clear( ) 删除该 Map 对象所有 key-value 对 boolean containsKey(Object key) 查询 Map 是否包含指定...1.2 Map 实现类 1.2.1 HashMap 集合    当给 HashMap 存放自定义对象时,如果自定义对象作为 key 存在,这时要保证对象唯一,必须复写对象 hashCode 和 equals...HashMap 提供了一个保证 Map 存取顺序一致 LinkedHashMap 集合(通过链表结构可以保证元素存取顺序一致)。...由于属性文件里属性名、属性值只能是字符串类型,所以 Properties 里 key、value 都是字符串类型。

64220

JDK1.9-Map集合

需要注意是,Map集合不能包含重复键,值可以重复;每个键只能对应一个值。...public V get(Object key) 根据指定键,在Map集合获取对应值。 boolean containsKey(Object key) 判断集合是否包含指定键。...Entry将键值对对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以每一个键值对(Entry)对象获取对应键与对应值。...遍历包含键值对(Entry)对象Set集合,得到每一个键值对(Entry)对象。 通过键值对(Entry)对象获取Entry对象键与值。...分析: 获取一个字符串对象 创建一个Map集合,键代表字符,值代表次数。 遍历字符串得到每个字符。 判断Map是否有该键。

34220

Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

key和value之间存在单向一对一关系,即通过指定key,总能找到唯一、确定value。Map取出数据时,只要给出指定key,就可以取出对应value。   ...为了成功地在HashMap、Hashtable存储、获取对象,用作key对象必须实现hashCode方法和equals方法。   ...除此之外,HashMap、Hashtable包含一个containsValue方法用于判断是否包含指定value,那么HashMap、Hashtable如何判断两个value相等呢?...)); //将WeakHashMap添加一个key-value对, //该key是一个系统缓存字符串对象。...WeakHashMap对象第四组key-value对key是一个字符串直接量,系统会缓冲这个字符串直接量(即系统保留了对该字符串对象强引用),所以垃圾回收时不会回收它。

1.5K80

Map接口和其子类HashMap遍历、LinkedHashMap

需要注意是,Map集合不能包含重复键,值可以重复;每个键只能对应一个值。...public V get(Object key) 根据指定键,在Map集合获取对应值。 boolean containsKey(Object key) 判断集合是否包含指定键。...Entry将键值对对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以每一个键值对(Entry)对象获取对应键与对应值。...遍历包含键值对(Entry)对象Set集合,得到每一个键值对(Entry)对象。 通过键值对(Entry)对象获取Entry对象键与值。...分析: 获取一个字符串对象 创建一个Map集合,键代表字符,值代表次数。 遍历字符串得到每个字符。 判断Map是否有该键。

23710
领券