- 博客(49)
- 资源 (1)
- 收藏
- 关注
原创 线程等待
文章目录Thread的几个重要方法线程通知与等待wait()/notify()/notifyAll()wait()函数获取监视器锁synchronized同步代码块共享变量方法,方法使用synchronized修饰虚假唤醒举例:消费者&生产者唤醒函数notify()函数notifyAll()函数等待线程执行终止join睡眠sleep让出CPU执行权yield()Thread的几个重要方法线程通知与等待wait()/notify()/notifyAll()Object类是所有类的父类,鉴于继承机
2021-04-05 21:03:27
1895
2
原创 线程的创建【就绪运行】(含代码)
线程的创建与运行线程创建的三种方法实现Runnale接口的run方法继承Thread类并重写run方法使用FutureTask方式public class CreateThread { /** * 通过继承Thread类创造Thread * 继承Thread,重写run(),用start()启动线程 * 使用继承方式的好处是 run方法获取当前线程直接使用this,无需使用Thread.currentThread法 * 缺点:Java不支持多继承
2021-04-05 10:53:49
298
1
原创 【进程&多线程】基础概念
多线程进程&线程基本概念进程:程序的一次执行过程,是系统运行程序的基本单位,是系统进行资源分配和调度的基本单位。线程:线程是进程中的一个实体,线程本身不会独立存在。比进程更小的执行单位。线程是进程的一个执行路径,一个进程可以有一个或多个线程,进程中的多个线程共享进程资源。操作系统分配资源给进程,但是CPU资源比较特殊,是分配到线程,线程是CPU分配的基本单位。在Java中,当我们启动 main 函数其实就启动了一个JVM进程, 而main 函数在的线程就是这个进程中的一个线程,也称主线程。
2021-04-05 10:51:03
159
1
原创 【并发】基本概念
概念进程&线程进程:程序的一次执行过程,是系统运行程序的基本单位。线程:比进程更小的执行单位。一个进程在执行的过程中可以产生多个线程。同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟栈和本地方法栈。线程新创建栈:new Thread()可运行线程:调用start()方法,线程处于runnable状态。可运行的线程可能正在运行也可能没有运行,这取决于操作系统给线程提供运行的时间。被阻塞/等待:暂时不活动,不运行任何代码且消耗最少资源,直到线程调度器
2021-04-02 15:22:24
295
原创 【面试准备】Mybatis
Mybatis入门什么是Mybatis?为什么需要Mybatis特点第一个Mybatis搭建环境创建Maven父工程创建Maven子项目编写Mybatis核心配置文件编写Mybatis核心工具类入门什么是Mybatis?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Ja
2021-03-02 23:40:39
61
原创 HashMap的四种遍历方法
感谢博客:遍历Map集合、修改Map集合中的value值import java.util.HashMap;import java.util.Iterator;/** * map的四种遍历方法 */public class Map { /** * 使用iterator遍历map * @param map */ public void MapIterator(HashMap<Integer, Integer> map) {
2021-01-26 13:57:19
177
原创 【剑指offer】15.二进制中1的个数
题目描述:转换成二进制解法Javapublic int hammingWeight(int n) { String s = Integer.toBinaryString(n); int count = 0; for (int i = 0; i < s.length(); i++){ if (s.charAt(i) == '1'){ count++; }
2020-12-14 16:01:09
65
原创 【剑指offer】13.机器人运动范围
此题我用的深度搜索方法求解,而题解不管从时间复杂度还是空间复杂度上都要简单许多,还开启了新的运算符|&,故用博客记录此题。题意分析这题的最开始我用的是暴力求解法,遍历数组判断符合条件的点。这种做法错误原因在于,本题要求机器人能到达的点,那些不能到达点看作是障碍,机器人只能上下左右四个方向依次通过,不能越过障碍。所以我后来选择了深度遍历的方法。深度遍历解决public class offer_12 { boolean[][] visited; public boolea
2020-12-11 21:22:23
114
原创 Java面向对象编程-一切皆对象
Java面向对象编程-一切皆对象用引用操纵对象Java对元素类型进行简化,一切皆对象。类似借助遥控板控制电视机调节音量一样,Java不直接操纵对象,而借助引用来做。例:String s = "abc";//..①String s = new String("abc");//..②上面这俩是不一样的。①在编译期,JVM会去常量池来查找是否存在“abc”,如果不存在,就在常量池中开辟一个空间来存储“abc”;如果存在,就不用新开辟空间。然后在栈内存中开辟一个名字为s的空间,来存储“abc”在
2020-11-19 10:46:29
214
原创 Runtime调用运行cmd命令读取流阻塞
做深度学习的项目需要用到Java调用Python。想了个办法,直接用Java运行cmd命令,执行.py文件。在此遇到了两个问题:命令行的格式;读取流的阻塞,就是能成功运行命令,且未从错误流读取数据,但什么读入都没有,一直显示在运行。(我用的jdk1.8,朋友的低版本无这个问题。)问题二只存在于我的python运行时有复杂日志输出的情况(非我自己的print,应该是日志文件/warning的输出),所以java不能成功读取这种输出,造成流阻塞。对于问题二,我的解决方法是用多线程分别读取数据流和错误命
2020-11-14 10:12:16
454
原创 Anaconda镜像查看、添加与删除
感谢:conda安装tensorflow和pytorch - 阿贵的文章 - 知乎下载链接目录文件Anaconda的下载连接在C盘目录/user/本账户下的.condarc文件中存放这是我的:channels下的链接就为下载链接,defaults为anaconda的默认下载链接,这个链接下载速度会非常慢,也有可能因为过慢而中断,所以我们一般会再配一个清华的镜像链接,怎么配置请看后文。配置conda config --add channels https://mirrors.tuna.tsing
2020-11-10 09:38:41
1053
原创 【第六章关系数据理论】数据库梳理&汇总
目录关系模式存在的问题数据依赖函数依赖:多值依赖关系模式存在的问题数据冗余:不必要地重复存储某些属性的值;更新异常:由于数据冗余,更新数据要花费很大代价维护数据库完整性,否则会面临数据不一致的风险插入异常:应该插入的数据未被插入删除异常:不该删除的数据被删除数据依赖通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,是现实世界属性间相互联系的抽象,是语义的体现。函数依赖...
2020-05-03 10:34:58
374
原创 【(NOT) IN&ANY&ALL&(NOT)EXISTS】嵌套查询用法
IN:判断表达式的值是否在子查询的结果中集合之间的比较:ANY&ALLANY:表达式的值至少与子查询结果中的一个值相比满足比较运算符ALL:表达式的值与子查询结果中的所有的值相比都满足比较运算符ANY , ALL谓词与集函数以及IN谓词的等价转换关系EXISTS:判断子查询的结果集合中是否有任何元组存在IN vs. EXISTSIN后的子查询与外层查询无关,每个子查询执...
2020-05-01 19:21:14
490
原创 【E-R图】数据库知识梳理&实操
设计阶段:今天主要学习E-R图(概念结构设计阶段),华科E-R图是必考的,所以要好好学哦~概念设计 就是将需求分析得到的用户需求抽象为信息结构,即概念模型。E-R模型 :它将现实世界的信息结构统一用属性、实体以及它们之间的联系来描述。概念数据库设计方法与步骤自顶向下;首先定义全局的概念模型,然后逐步细化得到局部的概念模型.自底向上:首先定义各局部应用的概念结构,然后将其集成得到全局...
2020-05-01 16:22:55
1196
原创 【华科算法基础】三.分治法
目录分治算法可用分治法求解的特征分治法求解三步骤二分检索找最大/最小元素基于分治的分类算法选择问题分治算法基本思想将一个难以直接解决的、规模较大问题,分割成若干个规模较小、相对容易解决的、但性质相同的子问题,然后分别解决这些子问题。在获得这些较小子问题的解之后,再将子问题的解合并成原始问题的解。分治策略的抽象化控制过程——二分策略可用分治法求解的特征1) 问题可以分解为若干个规...
2020-04-30 13:51:50
499
原创 【华科算法基础】二.递归与递归式
目录什么是递归和递归程序设计递归的结构是什么什么是直接递归和间接递归递归程序效率问题消去递归(不要求)代换法、递归树法、主方法什么是递归和递归程序设计什么是递归和递归程序设计递归 是一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法。1)递归的本质递归把一个大型、复杂的问题层层转化为一个与原问题相似、但规模较小的问题来求解,只需少量的程序就可描述出解题过程所需要的多次重复计算...
2020-04-29 15:04:46
442
原创 【华科算法基础】一.算法基础
什么是算法算法就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算算法的五个重要特性确定性:确切的定义能行性:可行输入输出//只满足前四个称作计算过程 例:操作系统有穷性:一个算法总是在执行了有穷步的运算之后终止运算的分类:时间囿于常数的运算、时间囿于非常数的运算什么是事前分析和事后测试?各阶段的目标特点是什么?事前分析 :求出该算法的一个时间界限函数事后测试 :...
2020-04-29 11:21:26
1959
原创 【第一章绪论】数据库知识梳理&概念汇总
你以为你已经凉了,命运告诉你,你没有!快爬起来继续肝!现在请叫我华科硕士hhh(让我飘十几天,等复试给我一盆冷水吧!哈哈哈)这里写目录标题第一章 绪论概述数据、数据库、数据库管理系统和数据库系统四个概念数据库管理系统的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段数据模型概念模型一些概念数据模型组成三要素第一章 绪论概述数据、数据库、数据库管理系统和数据库系统四个概念数据 :描述...
2020-04-26 09:58:59
316
原创 【操作系统】死锁面试问题
目录什么是死锁死锁原因死锁的四个必要条件死锁避免什么是死锁死锁:多个线程同时阻塞,互相等待资源释放。死锁原因系统资源的竞争系统资源的竞争导致系统资源不足,以及资源分配不当,导致死锁。进程运行推进顺序不合适进程在运行过程中,请求和释放资源的顺序不当,会导致死锁。死锁的四个必要条件互斥条件:一个资源每次只能被一个进程使用,即在一段时间内某 资源仅为一个进程所占有。此时若有其他进...
2020-04-20 18:53:46
197
原创 【Java面试】类加载
目录类加载过程类加载器类加载过程加载>>>连接>>>初始化|验证>>准备>>解析类加载第一步:通过全类名获取定义此类的二进制字节流将字节流所代表的静态存储结构转换为方法区的运行时数据结构在内存中生成一个代表该类的Class对象,作为方法区这些数据的访问入口类加载器JVM内置三个重要的ClassLoader:Bo...
2020-04-20 18:24:52
71
原创 【内存管理】页式&段式&段页式&优缺点
内存管理的三个离散方式:页式(分页)、段式(分段)、段页式(页段联动)目录页式基本原理实现优点缺点段式管理基本原理实现优点缺点段页式管理基本原理实现优点缺点页式基本原理将各进程的虚拟空间划分为若干长度相等的页。内存空间按页的大小划分为片/页面,建立页表(页式虚拟地址与内存地址的映射),并用相应的硬件地址准换机构来解决离散地址变换问题。页式管理采用请求调页和预调页技术实现内外存存储器的统一...
2020-04-02 12:54:16
5399
1
原创 【面试准备】设计模式
呜呜呜华科复试去不了了,先找找工作吧~今日学习之设计模式~设计模式(Design Pattern):是前辈们对代码开发经验的总结,是提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。设计模式分为三类:创建型模式(五种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式(七种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式行...
2020-03-09 09:49:05
96
2
原创 【设计模式】单例模式&Java实现
定义 :一个类有且仅有一个实例,且这个实例为系统自行创建,类对外提供一个访问该单例的全局访问点。懒汉单例模式public class LazySingleton { private static volatile LazySingleton instance=null;//volatile保证所有线程中同步 private LazySingleton() {}//privete避免类在外部...
2020-03-09 09:42:04
81
原创 【算法】KMP超好理解的方法&Java实现
母串:ABCDABABCDABCDABDE子串:ABCDABD对字串进行处理,建立一个部分匹配值数组int next[]1表示第一次出现重复2表示重复第二次之后用来计算的移动公式:(部分匹配值里的数值对应公式中的“对应的部分匹配值”,字串与母串的已匹配数对应“已匹配的字符数”)逐个匹配实现已知空格与D不匹配时,前面6个字符"ABCDAB"是匹配的。查表可知,最后一个匹配字符B...
2020-03-03 16:24:37
97
原创 【Java&操作系统】多线程的同步与异步详解
找工作ing,fighting~文章目录:多线程并发问题多线程并发问题并发 :多个进程同时工作多线程并发会产生很多问题,如丢失修改、不可重复读、脏读、死锁等。为了协调进程之间的制约关系,引入进程同步互斥概念。同步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为同步机制存在,A线程请求不到,等待异步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为没有同步机制存在,A...
2020-03-01 16:51:54
218
原创 【软件工程】UML用例图总结
最近写毕设的系统设计,画用例图发现好多都忘了,再来记忆一次吧~用例:一个完整的功能是一个用例参与者(Acthor):表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。关系:用例图中涉及的关系有:关联、泛化、包含、扩展、依赖。关联(Association):表示参与者与用例之间的通信,任何一方都可发送或接受消息。泛化(Inheritance):就是继承关...
2020-02-21 22:02:27
2406
原创 【JavaWeb】做项目的错误收集整理
文章目录:Eclipse中Maven项目pom.xml文件没有错,但一直有红叉的解决办法Eclipse中Maven项目pom.xml文件没有错,但一直有红叉的解决办法鼠标右击maven项目,选择Maven,在弹出的界面中点击Update Project勾选Force Update of Snapshots/Releases进行强制更新(一定要勾选**!!!** )...
2020-02-19 20:55:37
101
原创 【vue】创建新vue项目
之前已经安装好node.js、vue、npm、cnpm、cli等环境。要是环境没装好的朋友可以先看看这个:https://www.cnblogs.com/lgx5/p/10732016.html博主写得已经很详尽了。环境安装完毕,怎么在vscode里运行vue代码呢?进入指定文件夹创建文件,需要填写一些基础信息直接用vscode打开文件vscode打开命令行终端:view中...
2020-02-19 17:16:42
374
原创 【C++】理解参数中的指针&/*
实参和形参:实参与形参有不同的地址空间。如果参数是指针,形参和实参指向同一地址空间如果不是,则实参和形参数值相同int Swap1(int a, int b) { int tmp = a; a = b; b = tmp;} int Swap2(int &a, int &b) { int tmp = a; a = b; ...
2020-02-19 16:16:36
191
1
原创 【华科复试】【贪心算法】最优二路归并树&二路归并排序
二路归并模式:每次仅作两个文件的归并;当有多个文件时,采用两两归并的模式,最终得到一个完整的记录文件。二元归并树:二路归并模式的归并过程可以用一个二元树的形式描述,称之为二元归并树。贪心求解: 任意两个文件的归并所需的元素移动次数与这两个文件的长度之和成正比。度量规则:每次选择需要移动次数最少的两个集合进行归并。处理规则:每次选择长度最小的两个文件进行归并。为得到归并树根结点表示的归并文件...
2020-02-19 13:02:20
2337
1
原创 【Java】MD5加盐加密
MD5加密MD5是常用的加密算法,在用户注册时通过算法加密的密码存入数据库,保护用户密码,数据库管理员不能直接看见密码,即使用户数据库被盗,没有存储明文的密码对用户来说也多了一层安全保障。用户登录时,在客户端用户输入密码后,也会使用MD5进行加密,这样即使用户的网络被窃听,窃听者依然无法拿到用户的原始密码。MD5加盐加密把参数名和参数值拼接成一个字符串,同时把给定的密钥也拼接起来。之所以需要...
2020-02-17 10:24:12
4887
原创 【贪心算法】最小生成树:Prim&Kruskal
贪心策略**度量标准:**选择能使迄今为止所计入的边的成本和有最小增加的那条边。**Prim:**逐渐连通,每次选择已加入集合的点中权值最小的边。**Kruskal:**选取边集合中两个边端点都未或有一方未加入结果集合的权值最小的边。Primkruskal...
2020-02-13 15:13:07
325
原创 计算机算法基础:分治法
基本思想:为解决一个大问题:分解成两个或多个更小的问题分别解决每个小问题把各小问题的解答组合起来,即可得到原问题的解小问题通常与原问题相似或同质,因而可以递归地分治。分治策略的抽象化控制procedure DANDC(p,q) global n,A(1:n); integer m,p,q;//1<=p<=q<=n if SMALL(p,q) then...
2020-02-02 17:26:06
855
原创 vue组件化开发
什么是组件简单理解:大问题拆分成小问题组件化:将一个页面拆分成一个个小的功能块,每个功能块完成属于自己这部分独立的功能,使得整个界面的管理和维护变得容易。vue的组件化思想:模块提供一种抽象,开发出一个个独立可复用的小组件来构造应用。任何的应用都会被抽象成一棵组件树。注册组件的基本步骤创建组件构造器Vue.extend({template:})注册组件Vue.componen...
2020-02-01 11:05:50
376
原创 vue:MVVM模型
MVVM:Model ViewModel ViewView:视图层,在前端开发中通常是DOM层,主要给用户展示各种信息Model:数据层,数据可能是我们固定的死数据(写在script里的自定义对象等),更多的是来自我们服务器,从网络上请求下来的数据。VueModel:视图模型层,是view&model沟通的桥梁。一方面实现了Data Binding(数据绑定),将Model...
2020-01-30 13:43:27
488
原创 vue案例:计数器
用vue框架实现一个计数器,点击加按钮,计数器加1,点击减按钮,计数器减一 <body> <div id="app"> <h2>当前计数:{{count}}</h2> <button v-on:click="count++">+</button> <button v-on:click="count...
2020-01-30 09:52:26
987
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人