- 博客(56)
- 收藏
- 关注
原创 UEFI基本概念
UEFI:Unified Extensible Firmware Interface,用来取代BIOSTianoCore:一个社区,支持UEFI的开源实现EDK2:一种UEFI的开发环境UEFI只是一种标准,EDK2是TianoCore社区提供的一种实现,开源。
2022-10-14 17:59:44
951
原创 设计模式——适配器模式
适配器模式用来将一个类的接口转换为另一种接口,使本来因为接口不兼容而不能一起工作的类可以一起工作。一个很常见的例子就是如果想要手机和U盘通信,但是两者没有通用的接口,就需要通过OTG线来连接,OTG线一端是micro-usb接口,另一端是USB接口,分别对应了手机和U盘的接口。而具体的实现有两种,一种叫类适配器模式,另一种叫对象适配器模式。类适配器模式Target是客户需要的接口,...
2019-07-31 22:00:43
241
原创 Java泛型和C++模板
Java中的泛型和C++中的模板有些相似。类型变量的限定在Java中,可以对类型变量进行限定。如果类或者方法只支持某些类型的操作,就可以限定T的类型。对于不支持的变量类型,编译时就会报错。而C++中不能对模板参数的类型加以限制。一个类型变量可以由多个限定,这些限定中可以有多个接口,但至多有一个类(Java不支持多重继承)。如果用一个类作为限定,它必须是限定列表中的第一个。类型擦除...
2019-07-29 22:25:34
1798
原创 java中String空串与null串
当初始化一个数组时,对于数字数组,所有元素都被初始化为0;对于boolean数组,所有元素都被初始化为false;对于对象数组,元素会被初始化为null。在对对象引用进行判断的时候就要考虑到null的情况。工作中遇到一个程序,解析一组数据,并将得到的数据存入一个String数组中。在对数组进行处理的时候,使用for循环遍历数组,并使用了String的isEmpty方法进行判断,如果非空就会打印...
2019-07-28 10:08:38
1227
原创 nand flash基础——基本操作
nand flash最基本的操作就是读写擦。读对于处于被擦除状态的cell,Vth都在0V(Vread)以下;而被写之后的cell,Vth则处于0V(Vread)和Vpassr之间。Vpassr在4V以下。根据这样的特性,则可以通过设置偏置电压来使cell处于导通状态。当需要读取一个cell时,在栅极(gate)上需要提供一个Vread电压(0V),在其他的cell上加上一个Vp...
2019-06-26 22:38:51
2099
原创 nand flash基础——基本结构
Array在String中,cell是串行方式连接的,一般32或64个一组,两端分别通过MSL连接到source line,MDL连接到bit line,并分别由晶体管控制开断。每个string和相邻的string(图中是上下方向)共用bit line。control gate是通过wordlines连接在一起。Page是一个逻辑上的概念,page是由同一根wordline上的cel...
2019-06-25 20:25:39
10928
原创 Java Integer对象的比较
Integer对象之间的比较要考虑到对象初始化的不同情况,初始化又涉及到对象包装器类的自动装箱特性 。自动装箱Integer是一种对象包装器类。对象包装器类是不可变的,也就是说,一旦完成了构造,包装在其中的值就不可以再被更改了。包装器类有一种特性,自动装箱。当需要一个Integer类型的对象时,可以对int类型的元素进行自动打包的操作。如果添加3到list中,实际调用的是下面的代码。...
2019-06-02 22:18:18
17775
原创 ArrayList的remove方法
从一个ArrayList中去除某个元素时会用到remove方法,这个方法有两个版本public E remove(int index)public boolean remove(Object o)按索引删除元素如果接收的是一个int类型的值,则这个值表示的是要删除的元素的索引值,方法返回的值就是被删除的元素,如果索引值在实际的范围外,则会抛出IndexOutOfBoundsExc...
2019-06-01 22:42:28
28064
4
原创 NAND Flash 芯片测试
DFT : Design For TestabilityTTR :Test Time ReductionKGD:Known Good DieNAND Flash 芯片测试主要是为了筛选(Screen Out)出Flash阵列、译码器、寄存器的失效。测试流程(Test Flow)从wafer level,到single component level、module level,...
2019-05-28 22:19:47
8716
原创 Java final关键字
final可以用来修饰数据、方法和类。一、 final数据1. 用于基本类型定义一个永不改变的编译时常量(编译时值已经确定);定义一个在运行时被初始化的值,一旦被初始化,就无法改变。2. 用于对象引用使引用恒定不变,即一旦引用被初始化指向某一对象,就无法再指向其他对象。但是被指向的对象本身是可以改变的。import java.util.Random;class Val...
2019-05-05 21:52:48
147
原创 BitMap实现数据压缩存储
相比于将数据的值直接进行存储,BitMap算法使用的是基于位的映射。如果一组数据互相之间不重复,就可以将其映射到一个数组中,数组的长度即为(最大的数据的值-最小的数据的值),每一个元素用来存储对应位置是否存在数据,只有两种状态,0表示该位置的数值不存在,1表示存在。只要通过这一个数组就可以表示所有的数据。如何实现压缩?由上可知,使用BitMap算法,使用的空间大小是由数据的范围确定的,...
2019-04-06 18:16:17
1219
原创 Java8 接口中的默认方法
公司代码中分为common code和product specific code,现在有:一份common.java文件,定义了一些通用方法一份productA_X.java , 一份productB_X.java,都实现了class X。现在一个productA相关的方法在common.java中定义,并且调用了一个新方法A,该方法定义在productA_X.java中。...
2019-03-18 19:49:12
1025
原创 Java 递归遍历实现linux tree命令
看到介绍java file类的文章,有一个遍历文件夹的练习,遍历某个目录下所有文件,包括子目录。写了一个用栈实现的递归遍历。import java.io.File;import java.util.Stack;public class TraversalFile { public static void main(String[] args) { File dir = new...
2019-03-13 22:21:06
650
原创 Swing小程序——在上次关闭位置启动窗口(多线程/监听器)
在HOW2J上看到的一个小例子,打开程序显示一个窗口,关闭后再启动程序,窗口出现在上次的相同位置,并且窗口中有一个label显示当前位置,如下图所示。思路:用文件记录窗口位置,启动程序时首先读取存储的位置信息,再设置窗口位置,显示窗口。方法一:多线程,启动一个线程记录位置信息。这个不是正常的思路,但是可以练习一下多线程。方法二:监听器,监听窗口关闭,记录位置信息。 一、多线程方...
2019-02-23 20:08:23
455
原创 Java try()语句实现 try-with-resources 异常管理机制
java7 新增特性,对于try语句块中使用到的资源,不再需要手动关闭,在语句块结束后,会自动关闭,类似于python的with..as的用法。利用这个特性,需要实现AutoCloseable接口,只有一个close方法,实现关闭资源的操作。public interface AutoCloseable{ public void close() throws Exception;...
2019-02-17 21:37:19
466
原创 JDBC基础
JDBC (Java DataBase Connection) 是通过JAVA访问数据库 环境:mysql-5.5.15,mysql-front 5.3 eclipse4.8.0 java 10.0.2 mysql-connector-java-5.0.8-bin.jar1 导入mysql-jdbc的jar包导入mysql-connector-java-5.0.8-bin.jar ...
2019-02-16 20:53:49
193
原创 SQL基础
环境:mysql-5.5.15,mysql-front 5.3 新建table websites SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for `websites`-- ----------------------------...
2019-02-16 00:33:59
341
原创 Qt生成调用动态链接库dll
把编译好的包含函数和变量的目标代码存储到文件中,在链接的时候让链接程序自动从文件中查找需要的代码。这个文件就是链接库,又可以分为静态链接库和动态链接库。1. 静态链接库链接程序从库中寻找需要的符号(函数和变量的名字),查找到就将其放入可执行文件,未查找到就报错。使用静态库链接的程序:(1)可执行文件中包含所有需要调用的函数代码;(2)如果多个进程调用相同的库函数,内存中会存在多...
2019-01-12 22:36:41
3849
原创 设计模式——单例模式
保证一个类只存在一个实例化对象,并提供一个方法来访问这个对象,实现受控访问。懒汉模式懒汉模式指的是在需要获取对象(调用getInstance)的时候才会创建,即延迟加载。成员必须是static,才会具有唯一性。构造函数是private,外部无法访问,也就无法创建实例。getInstance必须是static,才能不通过实例来调用。public class Singleto...
2018-12-30 21:49:53
136
原创 设计模式——装饰模式
概念装饰模式:动态地给一个对象添加一些额外的职责。Component是一个抽象的类,定义了对象接口。 ConcreteComponent是子类,定义了具体的方法的实现。Decorator是继承自Component的抽象类,维护了一个Component的对象引用,并且实现了基类Component的功能。ConcreteDecoratorA继承自Component,会执行基类Dec...
2018-12-30 21:15:59
142
转载 Java正则表达式
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。特殊字符特别字符 描述 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。 ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字...
2018-12-30 19:39:33
151
原创 Java异常处理
抛出异常后:1. 使用new在堆上创建异常对象2. 终止当前执行路径,从当前环境中弹出对异常对象的引用3. 异常处理机制接管程序,并运行异常处理程序。 标准异常类具有两个构造器:1.默认构造器2.接受字符串作为参数,将相关信息存入异常对象的构造器...
2018-12-23 15:45:42
142
原创 设计模式——策略模式
感觉策略模式和简单工厂有点儿像。产品有一个抽象的基类,具体的产品有不同的实现;策略也分抽象策略和具体的策略。但是使用工厂生产出来的还是具体的产品,我们也是通过产品来调用各种方法。而策略模式中的Context类,维护了一个对Stragegy的对象引用,在初始化时选择策略,并且定义了一个方法来调用算法。 ...
2018-12-17 22:03:30
126
原创 设计模式——简单工厂
在《重构 改善既有代码的设计》8.14 以子类取代类型码一节中,使用到了一种类似于简单工厂的方法,当时将基类定义为抽象类,并创建了一个静态方法create(mode MODE),使用该方法来实例化。 如果使用简单工厂,就可以新建一个工厂类,把实例化对象的任务交给工厂类。public class PowerManagerNewFactory{ public static Powe...
2018-12-16 17:35:50
126
原创 Java运行时内存区域划分与对象访问
1. 区域划分 线程私有:程序计数器、虚拟机栈、本地方法栈线程共享:堆、方法区1.2 程序计数器(Program Counter Register)程序计数器:记录当前线程所执行的字节码的行号,应该类似于PC指针,字节码解释器根据计数器的值来选取要执行的字节码。每个线程都有一个独立的计数器,可以保证线程切换后还能够恢复到切换前的执行位置。1.3 Java虚拟机栈(Jav...
2018-12-15 23:03:30
137
原创 eclipse AmaterasUML 插件
AmaterasUML是一个可以生成UML类图的插件,其依赖于GEF插件。这两个插件都可以通过eclipse进行在线安装,如下图GEF 主页https://projects.eclipse.org/projects/tools.gefupdate sites:http://download.eclipse.org/tools/gef/updates/releases不清楚下面哪...
2018-12-10 21:48:31
351
原创 Java与C++参数传递方式对比
1 JavaJava中方法(函数)的参数传递只有按值调用一种方式。只是在方法内部产生了一个参数的拷贝。方法参数分为两种:1.基本数据类型。方法无法修改参数的值。2.对象引用。假设一个类Employee有一个raiseSalary的方法,在tripleSalary函数中调用该方法。public static void tripleSalary(Employee x){ ...
2018-12-06 22:39:29
451
原创 Java与C++创建对象方法比较
1 Java1.1 语法创建对象只有一种方式,即使用new操作符,下面的表达式构造了一个新对象new Date()如果想要多次使用该对象,就需要定义一个对象变量,该变量可以引用Date类型的对象,但是这个变量并不是一个对象,在初始化之前也并没有引用任何对象,不能将Date方法用于这个变量上。Date deadline;必须先对变量deadline进行初始化,有两种方式:...
2018-12-05 22:13:40
460
原创 学习廖雪峰Git教程遇到的几个问题
GitHub Windows桌面版本下载地址https://desktop.github.com/ https://github.com/上找了好久找不到。。。安装之后有下面这些,其中Git Bash是一个轻量级的Bash,可以使用linux的命令;Git CMD是基于windows cmd的。设置SSH第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,...
2018-12-02 22:06:42
142
原创 代码重构——简化条件表达式
之前verilog写多了,老是想着if else要完整,否则会产生锁存器。发现现在写代码潜意识里也有这种想法,好逗。。。最近正好看到公司大牛重构代码,优化for循环和if语句,还看到《阿里巴巴Java开发手册》里控制语句里的部分内容,搜了一下发现了《重构 改善既有代码的设计》这本书,发现挺有意思。卫语句《阿里巴巴Java开发手册》讲到了卫语句。《重构 改善既有代码的设计》也讲到了这...
2018-11-29 22:51:38
396
转载 阿里巴巴Java开发手册笔记
一、编程规约(一)命名风格3.类名使用UpperCamelCase风格4.方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格5.常量命名全部大写,单词间用下划线隔开6.抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。(四)OOP规约7.所有的相同类型的包装类...
2018-11-27 22:40:24
148
原创 Java访问权限
private:只能被本类访问无修饰(default):允许同一个包内的类进行访问protected:在默认情况外,也允许子类(不在同一个包内)进行访问public:能被所有类访问这四种情况对于访问权限的限制程度从大到小依次为:private < default < protected < public参考java的访问权限...
2018-11-27 22:11:09
151
原创 java包
Java中使用包的原因主要是为了确保类名的唯一性。相同的类名放在不同的包中不会产生冲突。标准的Java包使用嵌套的层次,从编译器角度来看,嵌套的包之间没有任何关系。packagepackage语句要放在源文件的开头,声明类在某个包中package PackageNameimport使用import可以导入一个特定的类或包,import语句应该位于源文件的顶部,packag...
2018-11-21 21:41:30
304
原创 VS code 配置python环境问题:'cmd' is not recognized as an internal or external command
问题配置好环境后,对python进行debug时,出现问题'cmd' is not recognized as an internal or external command解决方法看了错误信息之前的提示,感觉应该是执行python程序之前,执行的cmd /C 命令发生错误。搜索到cmd /c dir:是执行完dir命令后关闭命令窗口。在windows命令窗口输入cmd,发...
2018-11-17 21:45:31
38775
2
原创 nand flash基础——读写擦操作
当对一个cell进行读操作时,对相应的wordline施加Vread电压,对其他wordline施加Vpass电压,如上图所示。状态为“0”的cell(被program的cell)的Vth均大于0,状态为“1”的cell(被erase的cell)的Vth均小于1,且所有cell的Vth有一个上限,所以对其他cell施加一个能确保导通的Vpass电压,对要读数据的cell加一个电压值在两种状态...
2018-11-12 22:08:41
2467
原创 nand flash基础——浮栅结构
nand flash cell使用一种特殊的场效应管,结构如下图所示。control gate是控制栅极,即一般意义上的栅极;相对于普通场效应管增加了floating gate,即浮栅结构,与外界没有电气连接,被包裹在二氧化硅介质层中,是浮空的。浮栅可以捕捉电子并储存,并且由于没有对外的回路,即使掉电之后,电子也不会流失。而浮栅结构中存储的电子的量,可以改变场效应管的导通电压,即Vth...
2018-11-12 21:34:46
11921
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人