线程安全问题 线程安全问题1. 什么是线程安全要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享(Shared)的、可变(Mutable)的状态的访问。 共享:变量可以由多个线程同时访问。可变:变量的值在其生命周期内可以发生变化。 一个对象是否是线程安全的,取决于他是否被多个线程同时访问。这指的是程序中访问对象的方式,而不是对想要实现的功能。要使得对象是线程安全的,需要采用同步机制来协同 2020-10-05 #Java #多线程
反射和注解 反射反射机制概述反射被视为动态语言的关键,反射机制允许程序在执行期间借助Reflection API 取得任何类的内部信息,并能直接操作任何对象的内部属性和方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个对象),这个对象就包含了完整类的结构信息。 Java反射机制研究及应用: 在运行是判断任何一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断 2020-09-20 #Java
事务 什么是事务1保证业务操作完整性的一种数据库机制 事务(ACID)1234567891011121314151617# 事务四大特性(ACID)## 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。 因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。## 一致性(Consistency) 事务开始前和结束后,数据库的 2020-09-06 #数据库
二叉树的实现和遍历 树树(Tree)形结构是一种重要的非线性结构。树形结构反映了数据元素之间的层次关系和分支关系。 基本术语 一个结点的子树个数称为该结点的度(degree),一棵树中结点度的最大值称为该树的度。度为0的结点称为叶子结点或者终端结点。 树中结点的后继结点称为儿子结点,结点的前趋结点称为儿子的父亲结点。 结点的层数使从根开始算起的。设根节点的层数为1,其他结点的层数 2020-08-06 #Java #数据结构与算法
Git Git命令1234567# Git 配置git config 查看git配置git config -- global user.name ""git config -- global user.email "" 123456# 查看当前状态git status可以根据文件的颜色来判断当 2020-07-01 #工具
HashMap源码 HashMap源码1、简介123456789101112131415161718HashMap是基于哈希表的Map接口的实现,是以key-value存储形式存在,即主要用来存放键值对,HashMap的实现不是同步的,这意味着它不是线程安全的,它的key、value都可以为nullHashMap中的映射下不是有序的。java1.8之前的HashMap由数组-链表组成的,数组是HashMap主体, 2020-03-08 #容器 #Java
ArrayList源码 ArrayList1、ArrayList的底层 – 数组 数组结构的优缺点: 数组查询块,根据地址和索引直接获取元素 数组增删改慢,每次都需要创建新数组。且移动元素位置 2、ArrayList继承关系1234public class ArrayList<E> extends AbstractList<E> implements List<E> 2020-02-08 #容器 #Java
Servlet 编程 Servlet 编程基础 Servlet 是连接 Web 服务器与服务端 Java 程序的协议,是一种通信规范。这个规范是以一套接口的形式体现的。 Servlet 规范中包含一套接口。而 Servlet 接口仅仅是其中之一。 微观地讲,Servlet 是 Servlet 接口实现类的一个实例对象,是运行在服务器上的一段 Java小程序,即 Server Applet,也就是 Servl 2020-02-08 #Java #Web
Cookie和Session 1、Cookie1.1、Cookie概述我们打开163邮箱官方。https://mail.163.com/ 输入账号和密码,并且点击十天内免登录。进入邮箱。 当我们关闭浏览器或关闭电脑之后,我们再次进入邮箱。https://mail.163.com/ 此时我们不需要输入用户名和密码。说明:我们的账号和密码是保存在客户端,并且是在客户端的硬盘上,而不是内存中。 客户端电脑中用于保存这些会话状态 2020-02-08 #Java #Web
基于位图的优先级算法 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455要求写就绪表,获取最高优先级怎样让任务进入退出就绪.6对应二进制为:000110高3位:000=0通过OSMapTbl映射后:OSMapTbl[prio>>3]=OSMapTbl[0 2020-02-05 #数据结构与算法