![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java
文章平均质量分 50
知识点
小雨光
这个作者很懒,什么都没留下…
展开
-
JVM+GC
JVM+GC1.JVMJVM:java Virtual Machine java 虚拟机JDK:Java Develpment Kit java 开发工具JRE:Java Runtime Environment java运行时环境[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XmWDriIN-1629621934552)(image/image.png)]2.JVM中共享区,和gc root1、堆区和⽅法区是所有线程共享的,栈、本地⽅法栈、程序计数器是每个原创 2021-08-22 16:45:48 · 184 阅读 · 0 评论 -
tomcat.nginx+JDBC.Servlet
tomcat/nginx+JDBC/Servlet1.JSP 和 servlet 有什么区别JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的情况是 Java 和 html 可以组合成一个扩展名为 JSP 的文件。JSP 侧重于视图,servlet 主要用于控制逻辑。2.JSP 有哪些内置对象?作用分别是什么?J原创 2021-08-22 16:44:50 · 1151 阅读 · 2 评论 -
MyBatis.Redis.+mysql.mycat
MyBatis/Redis/+mysql/mycat1.Mybatis优缺点优点:1、基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML 标签, 支持编写动态 SQL 语句, 并可重用。2、与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接;3、很好的与各种数据库兼容( 因为 MyBatis 使用 JDBC 来连接数据库,所以只要JDB原创 2021-08-22 16:42:32 · 672 阅读 · 0 评论 -
Spring、SpringMVC、SpringBoot
Spring、SpringMVC、SpringBoot1.Spring是什么?Spring是一个轻量级的控制反转(Ioc)面向面切编程(AOP)容器的开源框架。降低了开发的难度、低入侵、解耦合、声明事务管理方便集成其他框架、容器spring的大小和开销都是轻量级的通过控制反转(Ioc)和依赖注入(DI)将对象的创建和属性赋值工作都交给spring处理,从而达到解耦合的目的提供了 面向切面编程的功能,可以通过分离应用的业务逻辑与系统服务来进行内聚性的开发因为包含管理对象的配置和生命原创 2021-08-22 16:40:07 · 4170 阅读 · 0 评论 -
类加载器双亲委派模型
JVM中存在三个默认的类加载器:BootstrapClassLoaderExtClassLoaderAppClassLoader他们的关系是:AppClassLoader的⽗加载器是ExtClassLoader,ExtClassLoader的⽗加载器是BootstrapClassLoader。JVM在加载⼀个类时,会调⽤AppClassLoader的loadClass⽅法来加载这个类,不过在这个⽅法中,会先使⽤ExtClassLoader的loadClass⽅法来加载类,同样ExtClas原创 2021-08-21 23:38:42 · 84 阅读 · 0 评论 -
ConcurrentHashMap
在保证线程安全的前提下,又尽可能的提高并发效率JDK1.8之前采用分段锁(16段),控制锁的粒度,减少线程间的冲突1.8之后采用CAS+少量SyschronizedCAS:Compare and Swap 比较 并交换 V(备份)、E(预期)、B(新值)对原值进行备份得到V对V进行代码块的执行,得到新的值B(这时候不会吧B直接赋值给原值,而是将B赋值给预期值E)然后重新从原值那里那一份值,看看还 是不是最开始的V的值判断E=V?(由于线程交替执行所导致的原来的值可能改变)如果相等就将B原创 2021-08-21 23:33:00 · 177 阅读 · 0 评论 -
java 中的 final
原创 2021-08-11 06:26:33 · 49 阅读 · 0 评论 -
session 和 cookie
一、区别存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数限制。存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器中。二、session 的工作原理session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session 创建完之后,原创 2021-08-10 22:47:34 · 450 阅读 · 0 评论 -
HashMap的Put⽅法
1. 根据Key通过哈希算法与与运算得出数组下标2. 如果数组下标位置元素为空,则将key和value封装为Entry对象(JDK1.7中是Entry对象,JDK1.8中是Node对象)并放⼊该位置3. 如果数组下标位置元素不为空,则要分情况讨论3.1. 如果是JDK1.7则先判断是否需要扩容,如果要扩容就进⾏扩容,如果不⽤扩容就⽣成Entry对象,并使⽤头插法添加到当前位置的链表中3.2. 如果是JDK1.8则会先判断当前位置上的Node的类型,看是红⿊树Node,还是链表Node3.2.1原创 2021-08-10 22:18:41 · 124 阅读 · 0 评论 -
String、StringBuffer、StringBuilder的区别
String是final修饰的,不可变,每次操作都会产生新的String对象StringBuffer和StringBuilder都是在原对象上操作StringBuffer是线程安全的,StringBuilder线程不安全的StringBuffer方法都是synchronized修饰的性能:StringBuilder > StringBuffer > String场景:经常需要改变字符串内容时使用后面两个优先使用StringBuilder,多线程使用共享变量时使用StringBuffe原创 2021-08-10 22:06:17 · 42 阅读 · 0 评论 -
GC如何判断对象可以被回收
1.引用计数法:每个对象有一个引用计数属性,新增一个引用的时候计数加1,引用释放时计数减1,当计数为0的时候就可以回收2.可达性分析法:从 GC Roots 开始向下搜索,搜索所走过的路径称为引用链。当一个对象到 GCRoots 没有任何引用链相连时,则证明此对象是不可用的,那么虚拟机就判断是可回收对象。但是这样会存在一个问题:引用计数法,可能会出现A 引用了 B,B 又引用了 A,这时候就算他们都不再使用了,但因为相互引用 计数器=1 ,那这两个对象就都永远无法被回收。解决:只靠强引用计数原创 2021-08-10 22:01:31 · 1408 阅读 · 0 评论 -
JVM中,哪些是共享区,哪些可以作为gc root
1.堆区和⽅法区是所有线程共享的,栈、本地⽅法栈、程序计数器是每个线程独有的2、什么是gc rootJVM在进⾏垃圾回收时,需要找到“垃圾”对象,也就是没有被引⽤的对象,但是直接找“垃圾”对象是⽐较耗时的,所以反过来,先找“⾮垃圾”对象,也就是正常对象,那么就需要从某些“根”开始去找,根据这些“根”的引⽤路径找到正常对象,⽽这些“根”有⼀个特征,就是它只会引⽤其他对象,⽽不会被其他对象引⽤,例如:栈中的本地变量、⽅法区中的静态变量、本地⽅法栈中的变量、正在运⾏的线程等可以作为gc root。原创 2021-08-10 21:49:13 · 471 阅读 · 0 评论 -
hive中的分区:PARTITIONED BY
一、例如如下这段建表语句每周活跃用户表create external table dws_uv_detail_wk( `mid_id` string COMMENT '设备唯一标识', `user_id` string COMMENT '用户标识', `version_code` string COMMENT '程序版本号', `version_name` string COMMENT '程序版本名', `lang` string COMMENT '系统语原创 2021-07-29 15:42:04 · 15204 阅读 · 0 评论 -
Hive中的静态分区和动态分区
实质上:分区是指物理上对hdfs不同目录进行数据的load操作一、例子。现在创建一个分区表CREATE TABLE device_open (deviceid varchar(50),...)PARTITIONED BY (year varchar(50),month varchar(50),day varchar(50),hour varchar(50))ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';二、动态插入数据动态插入就是指插入的数原创 2021-07-29 15:50:51 · 329 阅读 · 0 评论