摘要:问题背景 系统:ubuntu,当输入exit退出shell时,出现There are stopped jobs 无法退出shell 解决办法 找到这个stopped job然后终止它
阅读全文
摘要:获取字符串长度: ${#字符串变量名} 截取子串: 1. expr substr 字符串 起始位置 截取长度 2. 命令输出 | cut -c 起始位置-结束位置 命令输出 | cut -c "分隔符" -f 字段编号 3. 使用 ${ } 表达式 ${字符串:起始位置:截取长度} ${字符串::截
阅读全文
摘要:awk退出函数 exit awk中使用shell变量 awk 'BEGIN{FS="\t"; OFS="\t"}{if($2 == "'$accession'"){print($2, $3); exit 0}}' nucl.accession2taxid.txt 遍历 fastq_pass 目录中的
阅读全文
摘要:sed的基本命令 替换 s sed 's/原字符串/替换字符串/' # 只替换每行的第一个 sed 's/原字符串/替换字符串/g' # 替换所有匹配关键字sed -i '43,$s/^/chr/' af-only-gnomad.raw.sites.b37.vcf # 直接操作源文件,从43行开始至
阅读全文
摘要:MySQL官方文档:https://dev.mysql.com/doc/refman/8.0/en/data-types.html MySQL中定义数据字段的类型对数据库的优化非常重要。 MySQL中的数据类型可分: 字符串类型:分为定长字符串和变长字符串。字符串必须在引号内,通常单引号更好。 数值
阅读全文
摘要:检索数据 WHERE字句操作符 正则表达式匹配 检索结果去重复 DISTINCT() distinct(str) 函数是用来去掉重复记录的,但是它只是针对某一个字段可以去重复 如果要查询不重复的记录,有时候可以用到 group by UNION 操作符 连接两个以上的 select 语句的结果到一个
阅读全文
摘要:索引用于快速找出在某列中有特定值的行。 不使用索引,MySQL必须从第一条记录开始读完整个表,直到找到相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。 MySQL中的索引的存储类型
阅读全文
摘要:视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,不同于基本表,视图是一个虚表。在数据库中,存放的只是视图的定义而已,而不存放数据,这些数据仍然存放在原来的基本表结构中。只有在使用视图的时候才会执行视图的定义,从基本表中查询数据。 视图和普通表的区别 视图的优势 创建视图 CREATE OR
阅读全文
摘要:SQL语句执行的时候,要首先编译,然后在被执行。在大型数据库系统中,为了提高效率,将为了完成特定功能的SQL语句集进行编译优化后,存储在数据库服务器中,用户通过指定存储过程的名字来调用执行。 具体而言,存储过程是一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后,再次调用不需要再次
阅读全文
摘要:使用联结能够实现用一条SELECT语句检索出存储在多个表中的数据。联结是一种机制,用来在一条SELECT语句中关联表,不是物理实体,其在实际的数据库表中并不存在,DBMS会根据需要建立联结,且会在查询期间一直存在。 联结的本质是第一个表中符合条件的每一行与第二个表中符合条件的每一行进行配对,假如没有
阅读全文
摘要:此三个接口的声明如下: Statement用于执行不带参数的简单SQL语句,每次执行SQL语句时,数据库都要编译该SQL语句,以下是一个最简单的SQL语句 PreparedStatement表示预编译的SQL语句对象,用于执行带参数的预编译SQL语句。 CallableStatement提供了用来调
阅读全文
摘要:事务是数据库中一个但单独的执行单元(Unit),他通常由高级数据库操作语言(如SQL)或编程语言(如C++、Java)编写的用户程序的执行所引起。当在数据库中更改数据成功时,在事务中更改的数据便会提交,不再改变;否则,事务就取消或者回滚,更改无效。 事务必须满足四个属性:ACID 原子性(Atomi
阅读全文
摘要:第一种 使用new关键字 第二种 使用反射技术:1)通过Class类的newInstance()方法;2)通过Constructor类的newInstance方法 第三种 通过Object类的clone()方法 第四种 通过反序列化的方式
阅读全文
摘要:什么是反射机制 Java的反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意属性和方法。这种动态获取信息以及动态调用对象属性和方法的即使称为Java的反射机制。 反射的应用场景 在编译时根本无法知道该类或对象可能属于哪些类,程序只能依靠运行时
阅读全文
摘要:synchronized和Lock都是Java语言提供的两种实现对共享资源进行同步的机制。其中synchronized使用Object对象本身的wait()、notify()、notifyAll()方法实现调度机制,而Lock可以使用Condition进行进程之间的调度,完成synchronized
阅读全文
摘要:两者都是Thread类的静态方法,定义如下 public static void sleep(long millis) throws InterruptedException public static void yield() 1)sleep()方法给其他线程机会时不会考虑线程的优先级,因此会给低
阅读全文
摘要:通过调用线程类的start()方法来启动一个线程,使线程处于就绪状态,即可以被JVM来调度执行,在调度过程中,JVM通过调用线程类的run()方法来完成实际的业务逻辑,当run()方法结束后,此线程就会终止。 如果直接调用线程类的run()方法,会被当作一个普通的函数调用,程序中仍然只有主线程这一个
阅读全文
摘要:所谓同步,就是发出一个功能调用时,在没有得到结果之前,该调用就不返回或者继续执行后续操作。 异步跟同步相对,当一个异步调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。当这个调用完成后,一般通过状态、通知和回调的方式来通知调用者。对于异步调用,调用的返回并不受调用者控制。 根据同步的定义
阅读全文
摘要:问题 在 int i = 0; i = i++; 语句中,i = i++是线程安全的么?如果不安全,请说明上面操作在JVM中的执行过程,为什么不安全?说出JDK中哪个类能达到以上的效果,并且是线程安全而且高效的,简述其原理。 回答 语句 i = i++;不是线程安全的。 该语句执行过程如下, 先把
阅读全文
摘要:1. volatile 和 synchronized 关键字 2. 等待/通知机制 3. 管道输入/输出流 4. Thread.join()的使用 5. ThreadLocal的使用 1. volatile 和 synchronized 关键字 根据 volatile 和 synchronized
阅读全文
摘要:1 package com.test.multithreadDemo; 2 3 import java.io.*; 4 import java.util.Map; 5 import java.util.Random; 6 import java.util.concurrent.locks.Condition; 7 import java.util.concurren...
阅读全文
摘要:Java中有四种内部类: 成员内部类:定义在另一个类(外部类)的内部,而且与成员属性和方法平级,故称成员内部类。类比于外部类的非静态方法,如果用static修饰就变成了静态内部类 静态内部类:使用static修饰的成员内部类。类比于外部类的静态方法。 局部内部类:定义在代码块内(使用花括号“{}”括
阅读全文
摘要:用输入/输出写一个程序,让用户输入一些姓名和电话号码,每一个姓名和电话号码经加在文件中。用户通过输入“done”来告诉系统整个列表输入完毕。如果用户输入完整的一个列表,程序将创建一个输出文件并显示或打印出来。
阅读全文
摘要:给定a、b两个文件,各存放50亿个url,每个url各占64B,内存限制4GB,请找出文件a与文件b中共同的url。 由于内存限制为4GB,而每个文件大小为50亿*64B = 5*64GB = 320GB,远远超出了内存限制,因此无法将所有的url读取到内存中,此时可以采取分批读取的方法。 Hash
阅读全文
摘要:{起始数字..结束数字} // 注意 起始数字和结束数字都包括在内 中间没有空格
阅读全文
摘要:已知两个链表head1和head2各自有序,请把它们合并成一个依然有序的链表。结果链表要包含head1和head2的所有节点,及节点值相同。
阅读全文
摘要:1)int是Java提供的8中基本类型的一种,只能用来运算,Integer是int的包装类,可以做更过的事情,因为Integer提供了很多有用的方法 2)int作为对象的属性时默认值为0,Integer作为对象属性时默认值为null。由此可见,int无法区分未赋值和赋值为0的情况,而Integer却
阅读全文
摘要:wait()是Object类的方法,当一个线程执行到wait()方法时,该线程就进入到一个和该线程相关的等待池中,同时释放了对象锁(暂时失去对象锁,wait(long timeout)超时时间到后还需要返还对象锁),其他线程可以访问同步方法或同步代码块; wait()使用notify() / not
阅读全文
摘要:可能的原因有: 1)执行权限的问题 解决方法: chmod +x ***.py 2)python版本的问题 解决方法:在执行时或者在py文件中选择好对应的Python的版本 3)python文件格式的错误 这个错误很大原因是不同系统的编码格式引起的:在windows系统中编辑的.sh .py文件可能
阅读全文
摘要:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是保证汉子不被截半个,例如输入“人ABC” 4,应该截为“人AB”;输入“人ABC们DEF” 6,应该输出为“人ABC”,而不是“人ABC+半个们”。 分析:在String中英文占1个字节,中文占2个字节
阅读全文
摘要:根据 java.lang.Thread.State 中的描述Thread有处于以下6种状态中的一种: NEW(初始状态):A thread that has not yet started is in this state RUNNABLE(就绪状态):A thread executing in t
阅读全文
摘要:ArrayList、Vector、LinkedList类均在java.util包中,均为可伸缩数组。 1)ArrayList和Vector都是基于存储元素的Object[] array来实现的,它们会在内存中开辟一块连续的空间来存储,因此支持通过下标来访问元素,同时索引数据的速度比较快,但是在插入和
阅读全文
摘要:1)String、StringBuffer、StringBuilder都用于字符串操作,其中,String是不可变类,即String对象一旦被创建,其值不能被修改,而StringBuffer和StringBuilder都是可变类,对象被创建以后仍然可以对其值进行修改。 2)在字符串需要共享的场合中使
阅读全文
摘要:面向对象的主要特征包括抽象、封装、继承、多态 1)抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一类,这个类只考虑这些事物的相似和共性之处,并且忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有关的方面。例如,看到一只蚂蚁和大象,你能够想象出它们的共同之处这就是抽象。抽象包括行
阅读全文
摘要:List<? extends T>表示类型的上界为T,即参数化的类型可能是T也可能是T的子类。<? extends T>被设计用来读数据的泛型,只能读取类型为T的元素。 List<? super T>表示类型的下界为T,即参数化的类型可能是T也可能是T的父类型。<? super T>被设计用来写数据
阅读全文
摘要:Sping MVC是在Spring框架上发展起来的框架,它提供了构建Web应用程序的全功能MVC模块,使用了Spring可插入的MVC架构,可以自由的选择各个模块所使用的架构,非常灵活。Spring MVC把控制器、模型、分派器以及处理程序对象的角色进行了分离,因此,Spring MVC具有更好的可
阅读全文
摘要:设计模式是众多软件开发人员经过长期的软件开发过程中总结得来的、针对的一般性问题的通用解决方案,是一套被分类编目的、软件开发人员都知晓的、可被反复利用的、代码设计经验的总结。 使用设计模式可以提高代码的复用、避免程序大量修改从而保证代码的可靠性,同时使代码更容易被他人理解。显然设计模式不管是对自己、对
阅读全文
摘要:1)final用于声明属性、方法、类,分别表示属性不可变、方法不可覆写、类不可被继承。 2)finally作为异常处理的一部分,只能用在try或try/catch语句中,并且附带一个代码块,表示这段代码最终一定被执行,经常用在需要释放资源的情况下。 3)finalize是Object类的一个方法名,
阅读全文
摘要:HashMap可以通过Map m = Collections.synchronizedMap(new HashMap())来达到同步的效果。具体而言,该方法会返回一个同步的Map,该Map封装了底层的HashMap的所有方法,使得底层的HashMap即使在多线程的环境中也是安全的。
阅读全文
摘要:同步意味着在一个时间点只能有一个线程可以修改hash表,任何线程在执行HashTable的更新操作前都需要获取对象锁,其他线程需要等带锁的释放。
阅读全文
摘要:1)java.util.Collection是一个集合顶层接口,该接口的设计目的是为各种具体的集合提供最大化的统一的操作方式,它提供了对集合对象进行基本操作的通用接口方法,实现该接口的类主要有List和Set 2)java.util.Collections是一个针对集合类的工具类,提供了一系列静态方
阅读全文
摘要:1)&是按位与操作符,a&b是把a和b都转换成二进制数后,然后再进行按位与的运算。&&是逻辑与运算符,a&&b就是当且仅当两个操作数都为true时,其结果才为true,只有有一个是false,a&&b的结果就是false 2)&&还具有短路功能,在参与运算的两个表达式中,只有当第一个表达式的返回值为
阅读全文
摘要:Java为数据结构中的映射定义了一个接口java.util.Map,它有4个实现类:HashTable、HashMap、TreeMap、WeakHashMap。 HashMap和HashTable的区别: 1)HashMap是JDK1.2引进的一个Map接口的实现,HashTable实现Map接口的
阅读全文
摘要:在Java中,可以通过new Thread 的方法来创建一个新的线程执行任务,但是线程的创建是非常耗时的,而且创建出来的新的线程都各自运行、缺乏统一的管理,这样的后果是可能导致创建过多的线程从而过度消耗系统的资源,最终导致性能急剧下降,线程池的引入就是为了解决这些问题。 所谓线程池就是将多个线程放在
阅读全文
摘要:当时用多线程访问同一个资源时,非常容易出现线程安全的问题,例如当多个线程同时对一个数据进行修改时,会导致某些线程对数据的修改丢失。因此需要采用同步机制来解决这种问题。 第一种 同步方法 第二种 同步代码块 第三种 使用特殊成员变量(volatile 成员变量)实现线程同步(前提是对成员变量的操作是原
阅读全文
摘要:构建进化树的工具有: muscle mega 进化树的可视化: 本地可视化软件 Figtree (网址:http://tree.bio.ed.ac.uk/software/figtree/) 该软件是java开发的,运行在JVM上,下载后解压即可,无需安转。 在线可视化软件http://www.ev
阅读全文
摘要:MySQL的下载 进入MySQL官网 https://www.mysql.com/ 选择 DOWNLOAD 到页面底部找到 MySQL Community Edition (GPL) 找到MySQL on Windows (Installer & Tools) 选择MySQL Installer 选
阅读全文
摘要:CentOS 通过 yum 安装MySQL5.7 Yum Repository 下载地址:https://dev.mysql.com/downloads/repo/yum/ 选择相应的版本进行下载:Red Hat Enterprise Linux 7 / Oracle Linux 7 (Archit
阅读全文
摘要:iTEXT下载地址 https://sourceforge.net/projects/itext/files/ 选择绿色的按钮,下载最新版本,解压后是一些jar包 为了使用方便,将文件夹放到JAVA_HOME目录下,并将这些jar文件放到CLASSPATH的路径下。 这是用java运行程序时是还会报
阅读全文
摘要:rsync远程传输避免密码输入 每次rsync远程传输时都需要输入用户在远程机器上的密码,这样导致无法在后台自动运行rsync,可采用秘钥文件来替代人工输入密码的方式来解决。 第一步 在本地机器上使用ssh-keygen -t rsa 生成秘钥(一路回车即可) 第二步 将本地机器上的公钥传送到远端机
阅读全文
摘要:问题描述 在ubuntu上部署了jar包(java开发的图形界面),但是图形界面上的中文显示乱码。 采用以下步骤后你能够完美支持中文 第一步,安装中文支持包langauge-pack-zh-hans 第二步,修改/etc/environment (在文件的末尾追加) 第三步,修改/var/lib/l
阅读全文
摘要:通过tar命令备份、解压缩文件,也可在不解压缩文件时查看包内的文件信息。 使用如下参数: 将列出所有包内的文件列表,包括目录
阅读全文
摘要:适配器模式有三个重要角色 ① 目标角色(Target):要转换成的目标接口。 ② 源角色(Adaptee):需要被转换的接口。 ③ 适配器角色(Adapter):核心是实现Target接口,组合Adaptee接口。
阅读全文
摘要:1)登录java官网,下载jre,并解压,解压后的jre文件夹移动到 /usr/lib/java 路径下 2)配置系统环境变量 JAVA_HOME CLASSPATH PATH 打开/etc/environment 写入如下命令 3)安装jre, 在ubuntu系统中,update-alternat
阅读全文
摘要:抽象工厂模式是工厂相关模式的终极形态,其与工厂方法模式唯一的区别就是工厂的接口里是一系列创造抽象产品的方法,而不再是一个,相应的,抽象产品也不再是一个了,而是一系列相关的产品,这其实是工厂方法模式的一种扩展。 工厂方法模式针对的是一个产品等级结果,而抽象工厂模式则是针对多个产品等级结构。在编程中,通
阅读全文
摘要:打包压缩生成 XXX.tar.gz 文件 open的原型是: tarfile.open的mode有很多种: 在写打包代码的过程中,使用tar.add()增加文件时,会把文件本身的路径也加进去,加上arcname就能根据自己的命名规则将文件加入tar包 打包压缩生成 XXX.zip 文件
阅读全文
摘要:工厂方法模式:生产那种产品不再是由参数决定,定义一个创建对象的工厂接口,让实现工厂接口的具体类决定实例化哪一个产品类,将实际创建工作推迟到子类当中。 ① 一个产品接口 ② 一个工厂接口 ③ 实现了产品接口的具体产品类 ④ 实现了工厂接口的具体工厂类 ⑤ 消费者类,用于测试 例子一 角色:一个产品接口
阅读全文
摘要:利用递归方法求6! 使用递归时,关键问题是弄明白递归表达式的含义以及递归的终止条件
阅读全文
摘要:接口(interface)和抽象类(abstract class)都是支持抽象定义的两种机制 相同点 1)两者都不能被实例化 2)接口的实现类和抽象类的子类都必须实现了接口或抽象类中的抽象方法后才能被实例化 不同点 1)关键字不同,接口用interface,抽象类用abstract class;类实
阅读全文
摘要:第一种 实现Runnable接口,覆写run()方法 第二种 继承Thread类,覆写run()方法 第三种 利用Callable接口、Executors工具类、ExecutorService接口、Future接口实现有返回结果的多线程 第一种 实现Runnable接口,覆写run()方法 ① 自定
阅读全文
摘要:简单工厂模式:又称静态工厂方法模式,就是有一个专门生产某个产品的类。定义一个工厂类和方法(一般为静态方法),该方法根据参数创建不同产品。 1) 工厂类角色:这是本模式的核心,定义一个方法,该方法根据参数来创建不同产品 2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。 3) 具体产品角色
阅读全文
摘要:单例模式要求类能够返回对象的一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用 getInstance 这个名称) 单例模式定义: 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象
阅读全文
摘要:pdf 转换为图片 (注意:pdf 默认转换的是透明背景,如果转为jpg格式必须添加背景色。-background white -flatten) 默认转换的图片清晰度不是很高,可以通过来参数设置:
阅读全文
摘要:观察者模式(又称发布/订阅者模式)提供了避免组件之间紧密耦合的一种方法,将观察者和被观察者的对象分开。在该模式中,一个对象通过添加一个方法使自身变得可观察。当被观察的对象更改时,它会通知已注册的观察者,这些观察者收到通知后所执行的操作与被观察者的对象无关。这种模式使得对象可以互相对话,而不必了解原因
阅读全文