![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 74
羽三
这个作者很懒,什么都没留下…
展开
-
Stream 流的基本概念以及常见应用
流是一种指定的计算视图。流遵循“做什么而非怎么做”的原则,它比循环更易于阅读。可以让你以一种声明的方式处理数据。原创 2022-06-16 09:35:25 · 399 阅读 · 1 评论 -
H2-Table CATALOGS not found
在使用 IntelliJ IDEA 2021.1.3 版本,使用默认配置连接 H2 数据库的时候,出现下面错误,项目里 H2 使用的版本为 2.0.202 。出现这个错误,是因为 INFORMATION_SCHEMA 有新旧两套实现。解决办法就是在 JDBC URL 后面拼接参数:;OLD_INFORMATION_SCHEMA=TRUE例如:jdbc:h2:file:./db/JaxBlog;OLD_INFORMATION_SCHEMA=TRUEH2-Table CATALOGS not found...原创 2022-06-12 21:31:27 · 1292 阅读 · 0 评论 -
Synchronized 底层实现
Synchronized 底层实现涉及到锁升级的概念。由偏向锁,升级为轻量锁(自旋锁/适应性自旋锁),再升级为重量级锁。Synchronized 的底层实现与用的是什么版本的 HotSpot 有关,这里以 OpenJdk 1.8 为例。偏向锁如果当前 Synchronized 修饰的代码,只有一个线程去访问,那此时线程去加锁/释放锁,显然时没有必要,这只会造成资源浪费。于是引入了偏向锁。在 Synchronized 加锁的对象的对象头,MarnWord 记录下当前线程的 ID,持有偏向锁的线程,每原创 2021-07-24 16:07:58 · 76 阅读 · 0 评论 -
Synchronized 用法总结
Synchronized 是 Java 多线程编程中常用关键字。Synchronized 是防止线程干扰和内存一致性的简单策略。Synchronized 关键字用法类对象:类名.class 创建的对象。对类对象上锁,可以叫做类锁实例对象:当前类,通过构造方法创建的实例对象。对实例对象上锁,可以叫做实例锁(对象锁)Synchronized 是一种同步锁,也是可重入锁。在不同地方使用 Synchronized 都会获取一把锁,但这把锁是谁的呢?修饰普通方法锁的是当前实例对象——实例锁publ原创 2021-07-24 16:07:24 · 74 阅读 · 0 评论 -
Java11新特性笔记
Java11 是甲骨文于2018年9月发布,是在 8 以后发布的第一个长期支持的的版本。StringString作为一个常用的类,在11里面增加一些新的方法lines()此方法返回 Stream,作用是将一串文字,以换行符分隔并返回行流支持的换行符有:\n 、\r、\ r \ n 正好对应不同操作系统里的换行符public static void main(String[] args) { String str = "第一行 \n第二行 \r第三行\r\n第四行\t不换行"; s原创 2021-03-22 17:28:15 · 124 阅读 · 0 评论 -
[WebMagic]Https下无法抓取只支持TLS1.2的站点
我按照官网的步骤,部署好了Maven,复制了他的示例代码,运行直接报错;报错的原因是因为 WebMagic默认的HttpClient只会用TLSv1去请求,对于某些只支持TLS1.2的站点 ,而官网抓取GitHub正好是TLS1.2的站点………关于这个问题的解决思路,这个框架的作者已经给出了临时解决方案(https://github.com/code4craft/webmagic/issues...原创 2019-07-08 23:21:14 · 1787 阅读 · 4 评论 -
web授权认证
web.xml在/WEB-INF/web.xml里添加下面代码<listener> <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class> </listener> <filter&g...原创 2019-03-23 17:53:06 · 847 阅读 · 0 评论 -
Spring常用注解
@Component:写在一个类的上面,声明该类是一个bean@Repository:声明一个Dao层的bean@Controller:声明一个控制层的bean@Service:声明一个Service层的bean@Value:给bean里面的每一个属性赋值,例如:@Value("20")@Autowired:默认按类型注入,类型找不到,则按照名字注入@Autowired() @Qual...原创 2019-03-12 23:17:42 · 116 阅读 · 0 评论 -
重写getColumnName()方法报错java.lang.StackOverflowError
重写getColumnName()方法报错java.lang.StackOverflowError我在一个方法里面初始化了一个列名,并添加了列名columnNames = new Vector(); columnNames.add("学号"); columnNames.add("姓名"); columnNames.add("性别"); ...原创 2018-03-10 18:15:00 · 206 阅读 · 0 评论 -
Java之冒泡排序
Java之冒泡排序冒泡排序,从字面上理解,冒泡的话,可以想象鱼在水里吐泡泡,越接近水面的泡泡越大,越远离水面的泡泡越小,那么冒泡排序也就是一个种从小到大的排序。 冒泡排序的原理:比较相邻的两个数,将值大的交换值右端思路每次都比较相邻的两个数,在第一轮之后,最大的值就到了最右端,那么第二轮就可以少一次比较,因为在第一轮最大的值已经在右端,所以第二轮比较,最右端的数就不参与比较,也就少了1...原创 2018-09-28 10:58:00 · 212 阅读 · 1 评论 -
Java8——时间类
Java8——时间类一套新的时间API,放在java.time包下面比之前的更加规范,并且解决了线程安全问题(最大区别)线程安全问题public class SimpleDateFormatTest { public static void main(String[] args) throws Exception { SimpleDateFormat sd...原创 2019-01-09 17:03:00 · 197 阅读 · 0 评论 -
MyBatis的一级缓存和二级缓存
MyBatis的一级缓存和二级缓存一级缓存是SqlSession级别的缓存,当使用了clearCache方法和,或者close方法的话,这个缓存失效,如果还有同样的查询,则还会发送一次查询SqlSession session = SqlSessionFactoryUtil.getSession();Emp emp = session.selectOne("queryEmpByNo"...原创 2019-03-11 10:11:00 · 97 阅读 · 0 评论 -
Shiro判断Subject是否拥有该角色
主要针对hasRole、hasRoles、hasAllRoles、checkRoles这几个方法的使用笔记#### [shiro_role.ini]```ini[users]java1234=123456,role1,role2jack=123,role1```#### 单个判断角色hasRole多个依次判断,返回true或者false,是否拥有该角色```java@Test...原创 2019-03-20 16:04:41 · 6756 阅读 · 0 评论 -
解决报错:com.mysql.cj.exceptions.InvalidConnectionAttributeException
```javaCaused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.You must configure eit...原创 2019-03-20 16:02:31 · 11247 阅读 · 1 评论