自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 算法_04_前缀和

题号难度掌握LeetCode560middleleetcode724easy原理技巧这个的模板性没有那么强,基本上就是求到数组[0,1,2……i]的和实例leetcode560题目:给定一个整数数组和一个整数 **k,**你需要找到该数组中和为 k 的连续的子数组的个数。输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。解class Solution { p...

2021-08-19 11:06:36 52 1

原创 算法_03_并查集

题号难度掌握leetcode721middle练习leetcode947middle上手学(实列题)原理原理必背模板class UnionFind{ int[] p; public UnionFind(int n){ p=new int[n]; for(int i=0;i<n;i++){ p[i]=i; } } public void uni...

2021-08-18 12:31:39 120

原创 算法_02_单调栈

题号难度掌握leetcode84hardleetcode739middle值得记一下原理如期名,保证栈是单调递增或者单调递减的,比如[1(0),3(1),4(2),2(3),5(4)] ps:这里的括号是对应的index。在保证单调增的时候,栈的变化如下,(栈存index,()里写的是数组对应的值)[0(1)]->[0(1),1(3)]->[0(1),1(3),2(4)]->[0(1),3(2)]->(0(1),3(2),4(5));...

2021-08-16 20:40:16 61

原创 算法_01_分治

题号难度掌握归并排序经典必leetcode 23hard原理[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uIrokNO0-1628767790753)(.\img.png)]如图所示、分治就是将大问题分成两个小问题再将两个小问题再分,只到能解决为止,然后再然返回结果实例归并排序public class sort { public static void main(String[] args) { ...

2021-08-12 19:30:38 64

原创 JVM_Java并发_05_实现同步的方式:锁和其他方法

一些名词解析互斥同步:一个共享资源在一段时间内只有一个线程共享(1v1)(悲观策略,认为只要不占有这个共享资源,就会出问题)非阻塞同步:先操作,如何没有其他线程争用共享资源,操作成功;出现竞争那再进行补偿措施。(乐观)synchronized关键字关键词:实现互斥同步、悲观锁、非公平锁synchronized实现同步的基础:java中的每个对象都有一个内部锁。内部锁来管理试图进入synchronize方法的线程。public synchronized void method(){ method

2021-08-11 01:13:46 81

原创 JVM_04_线程安全

什么是线程安全?非黑即白的定义说某代码是线程安全的则它必然:1)代码本身封装了所有的必要手段保证线程安全2)调用者无需关系多线程下的调用问题3)无需实现任何措施保证多线程环节下的正确调用java的线程安全按照线程的安全程度来划分为五类1、不可变内容:final保证不可变;如果共享的是个对象,那对象自行保证其行为不会产生任何状态变化。例子:如String,枚举2、绝对线程安全就是上述非黑即白的定义方便理解的例子:java.util.Vector是线程安全的容器但是不是绝对线程安全,在

2021-08-08 02:27:49 88

原创 JVM_02_对象的创建

如图所示,new指令后strep 1:定位类的符号引用说明:到常量池中定位一个类的符号引用,检查这个类是否已被加载、解析、初始化过。没有就进行类加载过程,有就为对象在java堆中分配空间step 2:java堆为对象分配空间分配方式:1)指针碰撞 (垃圾回收器带空间压缩整理使得java堆规整时)2)空闲列表 (垃圾回收器不带空间压缩整理使得java堆不规整时)保证分配过程线程安全:1) 同步处理(一个线程分配时其他线程不分配):实现方式CAS(比较与交换)+失败重试2)如下图所示。在ja.

2021-08-07 21:52:47 59

原创 JVM_03_类的加载过程

类的加载过程step 1 加载:方法区添加访问入口1)获取字节流:通过一个类的全限定名来获取定义此类的二进制字节流;注:没有规矩从某个class文件获得,这里可以从zip获取(jar、war等);从网络获得(web Applet)2)转换字节流结构:将这个字节流代表的静态存储结构传化为方法区的运行时数据结构;3)生成方法区的访问入口:内存生成这个类的java.lang.class对象,作为方法区访问这个类各种数据的访问入口step 2 验证:验证class文件字节流信息符合约束1)文件.

2021-08-07 21:51:37 66

原创 JVM_01_Java内存区域

线程私有程序计术器(内存空间较小):存储内容:当前线程所执行的字节码的行号指令器,用来取下一条要执行的字节码指令。线程执行java方法,计数器记录正在执行的虚拟机字节码;本地方法则为空。注:不会发生OutOfMemoryError虚拟机栈(线程的内存模型):存储内容:如图所示,特别说明,局部变量表存储的编译可知的Java基本类型(int、float等)、对象引用(reference)、returnAddress类型(指向一条字码指令的地址);异常:StackOverflowError.

2021-08-07 01:44:07 72

原创 1.爬山法-随机变异

随机爬山法伪代码图片来源Evolutionary Optimization Algorithms by Dan Simonpython实现随机爬山法求解ackley函数import mathimport random# 适应度函数def f(x): # Ackley函数 d=len(x) a,b,c=20,0.2,2*math.pi sum1,sum2=0,0 for i in range(d): sum1+=x[i]**2

2020-09-02 14:18:41 412

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除