暂时未有相关云产品技术能力~
暂无个人介绍
涉及到多用户登录的系统时都要对用户进行权限管理,权限管理属于系统安全的范畴,权限管理主要是为了实现“对用户访问系统的控制”,根据安全规则去控制用户可以访问的资源。
在我看来为自己的IDEA设置图片背景是一件很酷的事,这可以让我们写代码时,背景看起来很舒服,废话不多说,介绍下这个小操作。
因为不熟悉iml文件的作用,加上git上是没有提交该文件的,然后看着iml文件一直爆红就很讨厌,就手欠将其删除了,然后项目就各种报,类引用不到,包找不到,项目里的类中引用的类也都爆红,记录下问题的经过。
对于从事java开发的人一定见过这些概念,但是不去仔细研究却又不清楚这些都是什么,有时候又感觉几个感念在说一个事情,云里雾里,我也是在这种情况下对这几种概念进行学习的,这里对他们的联系进行总结。
我们都知道类都是通过类加载器被加载进虚拟机中的,那这个类加载器有哪些呢?我们平时写的代码又是通过什么类加载器被加载进虚拟机中的呢?类加载器的工作模式又是什么呢?带着疑问一起去学习下双亲委派模型与类加载器。
相信有一部分java程序员不是太清楚虚拟机是如何将类从java代码变成class文件,再从class文件到到内存,再将我们写的程序转化成具体的程序的,这里就总结下这个过程。
最近项目中有一个表信息过大,需要手动删除,因为信息量比较大手动删除较为麻烦,所以采用使用excel读取数据的方式,然后操作数据库删除数据,其实只要是想要从Excel中获取信息都可以使用这种方式进行操作Excel,代码很简单。
写在最前:学习class文件结构不像学习JVM内存结构、垃圾收集器那样,可以对我们写代码时有很多帮助,学习了JVM内存结构,我们在配置虚拟机参数时就会有更全面的考虑,写代码时就可以注意到代码的的优化空间,学习了垃圾收集器,让我们可以根据服务器的配置,更好的选择出适合程序最大吞吐量的收集器,更好的根据服务器硬件配置出合适的参数,学习class呢,则更多的是为了让我们知其然,也知其所以然,让我们知道我们写出的代码在JVM里面到底是怎么运行的,这部分内容会相对枯燥,白话多一些,这里主要分两个部分来详细讲述class文件的机构[class文件结构、字节码指令]。
JDK9之前,虚拟机HotSpot的堆被划分为新生代和老年代,新生代中的对象年龄超过15,该对象就会被移入老年代,这种方式也是最常见的一种对象进入老年代的方式,但是对象进入老年代却不止这一种方式,下面总计下对象进入老年代的几种方式
这里说的经典垃圾收集器,并不是说这些垃圾收集器多么的优秀,因为随着JDK版本的不断更新,新的垃圾收集器越来越多,这些在JDK9及之前使用的垃圾收集器自然就成为了相对经典的版本。说到垃圾收集器,就必须说垃圾收集算法 点击查看垃圾收集算法详解 ,因为垃圾收集算法是收集收集器的方法论,正是因为有了垃圾收集算法,才有了各种各样的垃圾收集器,下面认识下这些经典的垃圾收集器吧。
说到垃圾收集器必须要提的就是垃圾收集算法,因为所有的垃圾收集器都是基于垃圾收集算法实现的,垃圾收集算法是垃圾收集器的方法论,了解了这些方法论,对垃圾收集器的工作原理也就清楚了。说到垃圾收集算法,那么必须得提分代收集理论,因为有了分代收集理论才有了垃圾收集算法。
被判定为垃圾的对象或者内存区域会被垃圾收集器回收。那么什么样的对象或者内存区域会被判定为垃圾呢?下面就要说起经常作为垃圾判定依据的可达性分析算法与引用计数法了。这两种算法,都是经常被用作垃圾判定的算法,下面说下这两种算法。
java对象是怎么从代码变成一块内存空间的呢?只看代码层面我们只是使用了new关键字加上调用构造器,就生成了一个对象,然后我们就可以使用这个对象了,那么虚拟机在这当中究竟是怎么实现这个过程的呢,在这里我们一起学习下这个过程。
如图JVM运行时数据区域划分为以下6个主要部分:①程序计数器,②虚拟机栈,③本地方法栈,④虚拟机堆,⑤方法区,⑥直接内存,下面对6个部分详细总结,希望可以对路过的朋友有所帮助。
在使用springboot+dubbo+zk的架构中,经常会有服务需要调用其他服务中的接口,接口调用一般是两种方式: 第一种直接使用http方式调用,这种大部分场景都适用,但是会有数据丢失情况,不是特别稳定。 第二种就是调用dubbo接口,也就是常说的rpc调用,这时就需要引入对方封装的接口包,用以从dubbo容器中获取到这个接口的实现,这时就需要接口提供方将封装的接口包上传到maven私服,然后使用方直接在pom文件中配置依赖即可引用了。
当服务器上发生了bug,但是却因为某一两处日志没有打印,而最终无法定位到具体问题时,是很烦恼的,远程执行可以在不修改服务器程序的前提下为程序提供动态增强的功能,打印出自己想要的信息。
java死循环中无限生成对象会不会OOM?
在controller中注入了另一个controller,按理说,三个注解controller、service、respository都是component衍生而来,任何被注入容器中的bean都可以以同样方式获取,但是在使用springboot项目时,controller中注入另一个controller发现失败。改成注入service成功。
maven引插件报红
java.lang.OutOfMemoryError: GC overhead limit exceeded原因及解决方法
有此疑问的原因:在看jvm书籍时,碰到了介绍“直接内存”的内容,直接内存不是虚拟机运行时数据区的一部分,所以也就不是jvm名义上管理的部分,同时《java虚拟机规范》也未对其定义,但是这块区域也会被经常使用。这块区域使用的是计算机本身的内存,那么就需要考虑在给jvm各个区域提供参数时各个值的大小了,比如32位操作系统中,单进程最大可用4G的内存,如果jvm中各个区域占用内存很接近4G的话,就可能导致直接内存这块产生OOM(直接内存区域也会有OOM产生,这里不说原因了)。
jvm虚拟机(HotSpot)主要组成部分:程序计数器、方法区、虚拟机栈、本地方法栈、堆。 其中程序计数器与虚拟机栈、本地方法栈是线程私有,随着线程的创建产生,随着线程消亡而消失。
使用解压版jmeter后,导入了一个别人的jmter文件(其余操作正常无误),发现点击绿色启动按钮无反应,会一闪而过。
java中将引用类型分为强引用、软引用、弱引用、虚引用。之所以要这么划分,还是为了GC时更好的对对象进行处理。因为jvm已经明确了各种引用的GC方式,所以谈四种引用最好是和GC一起聊才会有意义(个人愚见)。
linux环境下安装nginx(并部署静态文件)
微信公众号跳转页面(自定义页面)
队列是一种数据存储的结构,实例化的队列就是一种数据容器,用特定的规则来存储数据的容器。队列遵循先进先出原则,一般可以使用数组和链表来实现队列,且队列的进队只从屁股rear开始,出列从front开始。
稀疏数组是一种为了节约存储空间而产生的数据结构,本质上稀疏数组就是一个普通的二维数组。其实在真实的应用中,稀疏数组的用武之地很少,起码笔者工作了几年,是没有发现稀疏数组的用武之地的(感觉游戏领域可能会用到),但是作为数据结构的一种,我们学习他还是可以得到一些启发的,比如使用时间换空间的思想,反过来使用空间换时间不也是可以的吗。所以学习他不一定非要用,但是肯定会对自己的思维有帮助。
所谓值传递就是一个参数被传进方法中修改,却不影响原始值,为什么原始值不受影响呢?因为jvm是将原始值复制了一份传递出去的,所以叫值传递(这句话很重要,这决定了对象数据类型到底是值传递正确,还是引用传递正确)。
IDEA前进后退快捷键设置
xss意思是跨域网站攻击,这里不探讨xss的起源,单纯记录下xss在项目中的实际应用,xss防止javascrpts脚本注入类似于sql注入,项目中使用到了xssfilter所以记录在此