摘要:
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;类实 阅读全文