Java深入
文章平均质量分 85
格色情调1984
信技术
展开
-
java修改操作出错:could not retrieve transation read-only status server
##一、问题描述我们一般在写新增、修改、删除操作业务代码时通常都比较简单,一般不会出现运行错误,但这次操作的是三张表(一张主表,二张关联表)出现了:could not retrieve transation read-only status server错误,具体修改操作业务逻辑是:1、先修改主表,若修改成功即行数大于0则修改下面的关联表;2、先找出第一张关联表要逻辑删除的数据及新增的数据,...原创 2019-12-20 15:24:05 · 17832 阅读 · 3 评论 -
通过自定义注解或拦截器实现APP调用后接口全局权限验证
现在就需要在现有代码的基础上添加用户登录和权限验证功能。关于登录和权限验证方面,参照以前做iOS的开发经验,App端提供用户名和密码换取token,每次通过换取的token请求需要登陆权限的操作。现在反过来,我就需要考虑下面几个问题:1.在现有功能的代码上如何比较轻松地满足这些功能的实现,使得现有代码改动不大,并且今后新功能实现权限验证不麻烦2.如何根据用户名和密码原创 2017-10-27 14:16:47 · 3282 阅读 · 0 评论 -
ThreadLocal使用、场景、原理
我一次在面试时,面试官问我ThreadLocal相关问题,因平时没有太多的关注,所以结果肯定被“打脸”了。以下来一起探讨下ThreadLocal的使用方法和实现原理。首先,先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。一.对ThreadLocal的理解 当使用ThreadLocal维护原创 2017-09-24 16:16:09 · 5791 阅读 · 0 评论 -
Java多线程----java 对象锁(synchronized/lock)
在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。1. 对象锁 所有对象都自动含有单一的锁。 JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1。每当这个相同的任务(线程)在此对象上获得锁时,计数会递增。 只有首先获得锁的任务(线程)才能继续获取该对象上的多个锁。原创 2016-09-06 15:15:24 · 730 阅读 · 0 评论 -
NIO详解及Netty4详解
NIO详解: http://blog.csdn.net/suifeng3051/article/details/48160753Netty详解:http://blog.csdn.net/suifeng3051/article/category/2161821原创 2017-07-24 15:41:20 · 847 阅读 · 0 评论 -
对Java BIO、NIO、AIO 学习
一、Java对BIO、NIO、AIO的支持:Java BIO(Block I/O) : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。Java NIO(NOT Block I/O) : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端原创 2017-03-22 11:01:25 · 729 阅读 · 0 评论 -
双亲委派模型
说道双亲委派模型,就要从类加载器说起。。。。。。。。。。。Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。在加载阶段,java虚拟机需要完成以下3件事:a.通过一个类的全限定名来获取定义此类的二进制字节流。b.将定义类的二进制字节流所代表的静态存储转载 2017-02-24 16:10:22 · 484 阅读 · 0 评论 -
线程池的原理及java实现
一、线程简介 创建线程有两种方式:继承Thread或实现Runnable。Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方法。 一个线程创建后就存在,调用start()方法就开始运行(执行run()方法),调用wait进入等待或调用sleep进入休眠期,顺利运行完毕或休眠被中断或运行过程原创 2017-03-05 19:03:12 · 1695 阅读 · 0 评论 -
JVM-GC算法与种类
一、GC的概念GC(GarbageCollection 垃圾收集),GC的对象是堆空间和永久区二、GC算法1、引用计数法老牌垃圾回收算法通过引用计算来回收垃圾使用者–COM–ActionScript3–Pythonn引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的原创 2017-02-20 16:12:50 · 485 阅读 · 0 评论 -
JVM性能调优
heap和stack有什么区别java的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。 堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些数据,例如,使用new 创建的对象都放在堆里,所以,它不会随方法原创 2016-08-22 23:36:59 · 638 阅读 · 0 评论 -
Java创建线程的两个方法
Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法; ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。原创 2017-02-28 14:51:09 · 541 阅读 · 0 评论 -
JVM性能调优监控工具hprof使用详解
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,这里介绍hprof让大家能开始对JVM性能调优的常用工具有所了解。原创 2016-11-16 11:40:31 · 57761 阅读 · 1 评论 -
java实现网络爬虫
网络蜘蛛即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从 网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网原创 2016-10-18 18:44:13 · 733 阅读 · 0 评论 -
lucene原理及java实现
Lucene 是一个高效的,基于Java 的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据 和非结构化数据 。结构化数据: 指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据: 指不定长或无固定格式的数据,如邮件,word文档等。原创 2016-08-28 16:37:36 · 11880 阅读 · 12 评论