- 博客(29)
- 收藏
- 关注
原创 死锁问题和出现条件
死锁问题的出现1.产生死锁的三个典型场景1.一个线程一把锁(可重入锁)2.两个线程两把锁3.N个线程M把锁(复杂问题)2.死锁的4个必要条件
2022-09-25 18:09:42
365
原创 HashTable,HashMap,ConcurrentHashMap的区别
HashTable,HashMap,ConcurrentHashMap的区别1.线程安全问题考虑:2.ConcurrentHashMap的优点3.HashMap 的key允许为NULL,另外两个不允许
2022-09-25 18:04:45
300
1
原创 java 文件读取和写入
1.文件名1.InputStream(字节流) 和Reader(字符流)2.OutputStream(字节流) 和 Writer(字符流)
2022-09-24 16:45:36
12621
1
原创 锁策略和CAS和synchronized
1.锁策略1,乐观锁和悲观锁2.普通的互斥锁和读写锁3.重量级锁和轻量级锁4.自旋锁和挂起等待锁5.公平锁和非公平锁6.可重入锁和不可重入锁2.CAS3.synchronized原理1.synchronized使用的锁策略:2.synchronized加锁经历的几个阶段(锁升级)3.其他优化方法
2022-09-22 23:33:12
307
原创 线程安全和线程不安全
1.造成线程不安全的原因2.线程不安全的解决方法1.对一些非原子的代码加锁--->两个线程写synchronized的4种加锁(synchronized加锁就是修改对象头)2.内存可见性问题,指令重排序问题--->一个线程读一个线程写3.线程的随机调度顺序,线程饿死问题
2022-09-17 19:10:55
1551
原创 线程的创建和状态
线程的创建和状态1.创建线程的5种方法2.多线程的运行规则3.守护线程,前台线程和后台线程4.中断线程的方法5.线程等待7.线程休眠
2022-09-15 19:52:36
567
原创 进程和线程
1.进程1.什么是进程2.进程是如何管理的3.进程的互不干扰(隔离性)4.进程间的合作办公(进程间通信)2.线程1.什么是线程经典问题: 进程和线程区别
2022-09-15 19:16:49
362
原创 初识java继承和多态
初识java继承和多态1.继承 1.背景和基本定义和意义 2.访问优先级 3.super关键字和this关键字 4.继承的构造方法的先后顺序 5.protected关键字---->继承权限 6.代码段的执行先后顺序问题 7.java继承的注意问题2.多态 1.多态需要的几个前提条件 2.三种常见的向上转型方式 3.重写的注意事项 4.向下转型
2022-04-10 10:31:36
532
原创 java初识类和对象
java初学类和对象认知1.什么是类和对象2.创建类和对象3.实例化对象 1.初始值2.就地初始化和默认初始化3.浅谈实例化对象过程4.This引用 1.为什么要有this引用 2.隐式this 3.成员方法中的this4.this还可以用于构造方法5.构造方法 构造方法中的this this用法总结: 构造方法的作用6.封装的概念7.关键字决定的权限问题8.static关键字,静态的问题9.代码段
2022-03-29 09:53:44
778
1
原创 初始java数组
1.初始化定义2.数组的三种打印方式3.数组引用null4.浅谈引用变量的影响5.与数组相关的字符串操作以及javaJVM内存简单介绍6.浅谈二维数组与C的区别
2022-03-24 12:03:20
5011
1
原创 初识java
1.java的JDK,IDEA的安装链接2.利用文档的方式写一个java的程序3.JDK,JRE,JVM之间的关系4.java的注释形式
2022-03-05 15:48:54
305
原创 枚举类型和联合体类型
1.枚举类型 1.枚举的创建,枚举常量的值 2.枚举类型和枚举变量/常量 3.与#define定义相比,枚举的好处2.联合体类型 1.联合体的定义和内存分布 3.联合体的应用,巧妙代码
2022-02-23 12:33:43
1195
原创 C语言结构体
1.结构体的声明与创建2.结构体的自引用3.结构体的初始化4.内存对齐 这种内存会带来什么影响?5.为什么会存在内存对齐6.如何设计结构体7.修改默认对齐数8.结构体和位段
2022-02-21 21:03:34
562
原创 指针进阶理解
1.关于字符数组衍伸的一些问题(字符串的定义)2.指针数组(数组内部存放指针)3.数组指针(指针指向数组)4.数组与指针在函数传参与接受的相关问题5.函数指针(指向函数的指针)6.函数指针数组(数组内部是指向函数的指针)
2022-01-22 23:20:49
376
原创 数据在内存中的存储
1.数据类型 有符号型与无符号型2.整型的储存形式 原码,反码,补码3.浮点型的存储形式 ,包括阶码,尾数,符号位的解读4.大小端存储方式 大端存储,小端存储
2021-11-27 21:50:59
618
原创 操作符详解
1.算式操作符2.移位操作符3.位操作符4.赋值操作符5.单目运算符6.关系操作符7.逻辑操作符8.条件操作符9.逗号表达式10.下标引用操作符11.函数调用操作符12.结构体的两个操作符13.表达式求值的三个注意点整形提升
2021-11-20 23:19:49
541
原创 C语言 初识指针
1.指针是什么2.地址与指针3.指针的表达式4..指针与 *5.指针类型的意义6.指针的意义7.我们常说的野指针是什么?该怎么避免?8.指针的操作9.指针与数组10.const与指针
2021-11-20 00:00:05
542
原创 C语言 初识数组
1.数组的定义不可使用变量(支持C99之后的编译可以),但使用可以用变量#include<stdio.h>int main(){ int n; scanf("%d",&n); int a[n]; //大部分编译器不支持,不如vs2019 for(int i=0;i<n;i++) a[i]=i; //[]是一个引用下标操作符 return 0;
2021-11-14 10:43:01
966
原创 三子棋的思路
作为刚学习c语言的萌新,代码可能存在bug刚开始创建两个源文件,一个头文件,(头文件存放的是函数的声明,一个源文件存放游戏的逻辑运行函数【如三子棋的胜利规则,玩家怎么下棋等等】,另一个存放main函数和主要函数,例如我game函数调用代表游戏开始,然后再game函数里调用游戏的实现逻辑的函数)接着分析这个代码如何实现1.首先需要一个棋盘,然后考虑的是玩家走和电脑走,然后判断谁赢了或者平局或者继续走2.三子棋中显示的数据我们可以用数组存起来,最后打印数组,数组还应改包括分割线#.
2021-11-13 18:55:10
2401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人