- 博客(11)
- 收藏
- 关注
原创 多线程的脉络梳理
文章目录一、什么是线程进程与线程的区别二、为什么需要线程三、线程的基本知识1.创建一个线程2.Thread类及常见方法2.状态的转移四、线程需要同步,如何处理五、线程安全问题1.什么是线程安全2.原子性/内存可见性/代码重排序3.怎么判断代码是否有线程安全风险4.怎么解决线程安全风险5.通过什么机制保护线程安全一、什么是线程线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务
2021-01-09 19:13:31
133
原创 Spring笔记
文章目录一、IoC/DI1.什么叫IoC2.什么叫DI二、Spring容器使用流程三、初始化/注册Bean1.注册Bean的方式一:类注解2.注册Bean的方式二:@Bean3.注册Bean的方式三:@Configuration四、依赖注入1.第一种方式:属性注入2.第二种方式:构造方法注入3.注入指定的Bean:@Qualifier五、Bean的作用域1.singleton2.prototype3.request4.session5.application6.websocket六、Bean的生命周期一、
2020-12-29 16:32:59
140
原创 JavaWeb复习笔记
HTMLHTML 是用来描述网页的一种语言。HTML 标题是通过<h1> - <h6> 标签来定义的。<h1>标题</h1><h2>标题</h2><h3>标题</h3>HTML 段落是通过标签 <p> 来定义的。<p>段落</p>HTML 链接是通过标签 <a> 来定义的。<a href="https://blog.csdn.net/Ng
2020-12-07 17:47:42
135
原创 Error:Execution failed for task‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug‘.的解决办法
Error:Execution failed for task’:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.可能是build.gradle里面出现了相同的包引用。Android Studio版本更新会把一些依赖包自动导入,如RecyclerView的依赖包,在4.0版本不需要手动导入依赖包输入代码控件<androidx.recyclerview.widget.RecyclerView android:i
2020-12-02 22:35:01
185
原创 JavaWeb中的Servlet知识点
Servlet什么是servlet?• 概念:Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。• 定位:Java Servlet用Java编写的服务器端程序(web application)。• 作用:其主要功能在于交互式地浏览和修改数据,生成动态Web内容。• 理解:狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Ser
2020-11-30 18:00:23
132
原创 java集合常用方法整理
ArrayListTypeMethod描述booleanadd(E e)将指定元素添加到列表尾部voidadd(int index,E e)将指定元素插入到指定位置booleanaddAll(Collection<? extends E> c)将指定集合添加到列表尾部booleanaddAll(int index,Collection<? extends E> c)将指定集合插入到指定位置voidclear()从列表
2020-11-26 18:53:33
107
1
原创 二叉树的性质和遍历(java)
二叉树概念一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。二叉树的特点:每个结点最多有两棵子树,即二叉树不存在度大于 2 的结点。二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树。特殊的二叉树满二叉树: 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数是2k-1 ,则它就是满二叉树。完全二叉树: 完全二叉树是效率很高的数据结构,完全二叉树是由
2020-11-12 20:06:01
164
原创 Java 中的栈和队列
栈概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。实现可以利用顺序表实现,也可以用链表实现public class MyStack { public int[] elem; public int usedSize;//top
2020-11-04 21:26:57
160
原创 Java面向对象的特点:多态
向上转型下面展示一些 内联代码片。Dog dog = new Dog("肉球");可以写为Animal dog = new Dog("肉球");此时dog是一个父类(Animal)的引用,指向一个子类(Dog)的实例,这种写法称为向上转型。向上转型发生的时机:直接赋值方法传参方法返回方法传参public class Test { public static void main(String[] args) { Dog dog = new Dog("肉球"); feed(
2020-10-29 22:28:41
132
1
原创 计算机中进制转换
十进制转换为二进制一般方法是使用除法,不断的除2取得余数,如11 / 2 = 5···15 / 2 = 2···12 / 2 = 1···01 / 2 = 0···1则11的二进制数为1011。第二种方法:十进制数11可以表达为11 = 1*2^3 + 0*2^2 + 1*2^2 + 1*2^0取每一项2^n的系数,可得11的二进制为1011二进制、八进制、十六进制互相转换将二进制数每三位取得一个八进制数,如01010011二进制 001 010 011八进制 1 2
2020-10-10 17:23:30
1977
原创 java中数据类型及运算符的基本知识点
1.数据类型数据类型基本数据类型数值型:byte,short,int,long,double,float字符型:char布尔型:boolean引用数据类型数组、类、接口1.1整型变量基本语法格式:int 变量名 = 初始值;代码示例:int a = 20;System.out.println(a);注意事项:在java中,一个int变量占4个字节,与操纵系统无直接关系。4个字节表示的数据范围是-2^31 ~ 2^31-1。如果运算的结果超出了int的
2020-10-10 16:33:21
189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人