![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaEE
文章平均质量分 93
bug师姐
bug师姐
展开
-
【JVM系列】Java对象的创建、分配、GC这些知识懂没懂?反正姐是懂了
文章目录一、JVM中的对象四种引用类型对象new的过程对象的组成如何访问对象判断对象存活对象的分配策略二、对象的回收(GC)垃圾回收算法垃圾回收器CMS垃圾回收器G1垃圾回收器三色标记跨代引用五一还要值班儿一、JVM中的对象四种引用类型强引用 一般Object obj = new Object()这种创建的对象都是强引用,只有对象有强引用关联就不会被GC。软引用 SoftReference包装的对象的引用就是软引用。在报内存溢出之前,先去回收这些软引用对象,回收完了有空间了就不报溢原创 2022-04-30 19:35:55 · 1159 阅读 · 7 评论 -
【JVM系列】JVM内存区域(JVM运行时数据区域)
堆用来存放对象和数组,只要是堆中的对象,就可以被所有线程共享(静态变量、静态常量、字符串存储在堆中的老年代里)。Java7 版本中将永久代的静态变量和运行时常量池转移到堆中存放的。原创 2022-04-30 12:33:31 · 2297 阅读 · 0 评论 -
Java消息中间件(activeMQ)
视频学习记录第一章 消息中间件概述1. 消息中间件的好处解耦、异步、横向扩展、安全可靠、顺序保证2. 什么是消息中间件发送和接收数据,利用高效可靠的异步消息传递机制集成分布式系统3. 什么是JMS(规范)Java消息服务(Java Message Service),是一个Java平台中面向消息中间件的API4. 什么是AMQP(协议)AMQP(advanced message queuing原创 2017-10-31 18:55:05 · 3156 阅读 · 0 评论 -
字符串的编码
计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。由于计算机是美国人发明的,因此,最早只有12原创 2017-11-27 20:25:09 · 314 阅读 · 0 评论 -
知识网址收集
mybatis 自动生成代码工具1.MyBatis-Generator在Eclipse上配置及使用 :2.Mybatis Generator最完整配置详解 :mybatis1. Mybatis Plus官网教程网站易百慕课网菜鸟教程JAVA下载jar包:http://www.java2s.com/可以下载大多jar包原创 2016-06-17 17:17:39 · 1367 阅读 · 1 评论 -
搭建新项目注意事项
作为项目负责人,一开始要做很多事情,总会忽略很多比较关键的地方。以下是关于之前项目的一些总结,以后再遇到新项目时,一定要先仔细阅读此总结再开始新项目的搭建。一、数据库相关1.设计数据库时尽量确认好每个字段的长度、类型 在类型方面,特别需要注意的是:数字类型要明确是否有小数,时间的存储类型确认 好是string、datetime还是date。2.保证数据库字段名字符合实际指代的意...原创 2017-11-06 20:14:52 · 1739 阅读 · 0 评论 -
Java锁详解
文章目录什么是锁锁的实现方式锁涉及的几个重要概念类锁和对象锁(重要)synchronized实现原理什么是锁计算机还是单线程的时代,下面代码中的count,始终只会被一个线程累加,调用addOne()10次,count的值一定就累加了10。public class Test { // 计数器 private Integer count = 0; // 累加.........原创 2019-06-29 22:57:22 · 28843 阅读 · 4 评论 -
Java锁详解之改进读写锁StampedLock
文章目录先了解一下ReentrantReadWriteLockStampedLock先了解一下ReentrantReadWriteLock当系统存在读和写两种操作的时候,读和读之间并不会对程序结果产生影响。所以后来设计了ReentrantReadWriteLock这种读写分离锁,它做到了读与读之间不用等待。示例: // 读写锁 private static ReentrantR...原创 2019-07-11 18:10:24 · 1486 阅读 · 0 评论 -
Java对象序列化详解
所有分布式应用常常需要跨平台,跨网络,因此要求所有传的参数、返回值都必须实现序列化。一、定义 序列化:把Java对象转换为字节序列的过程。 反序列化:把字节序列恢复为Java对象的过程。二、用途 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;(持久化对象) 2) 在网络上传送对象的字节序列。(网络传输对象)...原创 2016-08-10 14:47:32 · 39488 阅读 · 5 评论 -
Java中的volatile关键字
原博文地址:http://www.cnblogs.com/dolphin0520/p/3920373.html 这里只是对上面的博文的一个简单总结,总结如下:volatile变量保证可证性实现volatile变量保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。如何实现: 1. volatile变量规则:对一个变量的写操作先行发生于后面对原创 2017-01-10 09:36:05 · 674 阅读 · 0 评论 -
String直接赋字符串和new String的区别
1. String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;3. String str=”kvill”;与 String str=new String (“kvill”);的区别: 在这里,我们不转载 2016-05-26 09:16:54 · 9616 阅读 · 6 评论 -
Java源文件的编译、下载、解释和执行
一、Java源文件的编译、下载、解释和执行1. 执行java程序的步骤:Java源文件(程序员编写的*.java文件),使用javac编译生成*.class文件(字节码文件),然后使用java解释执行生成特定平台的机器码。2.java解释执行过程分为代码的装入、代码的校验、代码的执行2.1 代码的装入:由类加载器(class loader)完成。类加载器负责加载运行一个程序所需要的所有代码,包括继原创 2016-05-05 22:46:59 · 2452 阅读 · 0 评论 -
Java内存分析
程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分 : 1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static):转载 2016-05-05 22:55:08 · 445 阅读 · 0 评论 -
Cookie详解
cookie简介1. 定义cookie是由服务器发送给客户端(浏览器)的小量信息。2. 作用cookie是键值对形式存储的少量信息,那它有什么作用呢?我们知道,平时上网时都是使用无状态的HTTP协议传输出数据,这意味着客户端与服务端在数据传送完成后就会中断连接。这时我们就需要一个一直保持会话连接的机制。在session出现前,cookie就完全充当了这种角色。也就是,cookie的小量信息能帮助我们原创 2016-07-25 08:47:34 · 20632 阅读 · 6 评论 -
面向对象(上)知识点
该文章是看书时的一些相对自己来说较为重要的知识点,所以此博文不建议除本人外的任何人看。栈内存的引用变量指向实例在堆内存中的首地址。this关键字,总是指向调用该方法的对象,即谁在调用这个方法,this就代表谁。值传递:方法里传的参数是实际值的副本。 引用传递: 方法里的参数的实际值是对象在堆内存中的引用,即内存首地址。但该参数也是将引用变量的值复制一份副本,只不过该副本也是对象的内存首地址,原创 2016-05-09 19:37:56 · 625 阅读 · 0 评论 -
xxx cannot be resolved to a type 问题的几种常见原因
eclipse新导入的项目出现“XX cannot be resolved to a type”的报错信息时,一般有如下几种原因:JDK不匹配(或不存在) 不匹配时,重新安装一个新的JDKjar包缺失或冲突 缺失时添加一个,冲突时删除冲突的jar包eclipse查找项目类型策略所致 Project ——> Clean——>选择要clean的项目 。原创 2016-07-29 16:38:58 · 14765 阅读 · 1 评论 -
java78条注意事项
这78条来源于《Effective Java》一书,因中文版翻译得实在难道,我就只留了个目录。创建和销毁对象第1条:考虑用静态工厂方法代替构造器 第2条:遇到多个构造器参数时要考虑用构建器 第3条:用私有构造器或者枚举类型强化Singleton属性 第4条:通过私有构造器强化不可实例化的能力 第5条:避免创建不必要的对象 第6条:消除过期的对象引用 第7条:避免使用终结函数对于所有对象都原创 2016-10-11 17:42:38 · 384 阅读 · 0 评论 -
JDBC
一、JDBC基础JDBC全称:Java Database Connectivity(Java数据库连接)通过JDBC,就可以实现同一种API访问不同的数据库,例如,我们的代码既可以与Oracle数据库连接,也可与MySql数据库连接,二者的区别只是使用了不同的驱动程序。JDBC的作用 1) 建立与数据库的连接 2) 执行SQL语句 3) 获得sql语句的执行结果JDBC的4种常用原创 2016-10-19 10:14:19 · 689 阅读 · 0 评论 -
面向对象(下)知识点
指针:指向某个内存地址的变量。它有两个属性:地址值和指针类型。 空指针:不指向任何内存地址的指针。 指针类型可告诉编译器应该怎样进行接下来的数据访问。int类型和float类型就不是一样的。举个例,如:Cat cat = null;就告诉了cat变量是cat类型,则编译器会让cat变量去访问Cat类型数据;也即相当于在声明变量时完成了Cat类型的初始化,所以即使是Cat cat =原创 2016-05-09 21:59:29 · 937 阅读 · 0 评论