(转)Cvte提前批

1. 加密解密了解么?几种算法,讲一下你了解的(链接)

算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA

常见加密算法
1、DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合; 
2、3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;
3、RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快; 4、IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性; 5、RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法;  6、DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法; 7、AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法; 8、BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快; 9、MD5(Message Digest Algorithm MD5(消息摘要算法第五版):严格来说不算加密算法,只能说是摘要算法;为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护 10、PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。 11、SSF33,SSF28,SCB2(SM1):国家密码局的隐蔽不公开的商用算法,在国内民用和商用的,除这些都不容许使用外,其他的都可以使用; 12、ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。 13、TEA(Tiny Encryption Algorithm)简单高效的加密算法,加密解密速度快,实现简单。但安全性不如DES,QQ一直用tea加密

2. 多线程了解么?什么是线程安全?

 Java线程具有五中基本状态:
新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是说执行了t.start()此线程立即就会执行; 运行状态(Running):当CPU开始调度处于就绪状态的线程时,此时线程才得以真正执行,即进入到运行状态。注:就 绪状态是进入到运行状态的唯一入口,也就是说,线程要想进入运行状态执行,首先必须处于就绪状态中; 阻塞状态(Blocked):处于运行状态中的线程由于某种原因,暂时放弃对CPU的使用权,停止执行,此时进入阻塞状态,直到其进入到就绪状态,才 有机会再次被CPU调用以进入到运行状态。根据阻塞产生的原因不同,阻塞状态又可以分为三种: 1.等待阻塞:运行状态中的线程执行wait()方法,使本线程进入到等待阻塞状态; 2.同步阻塞 -- 线程在获取synchronized同步锁失败(因为锁被其它线程所占用),它会进入同步阻塞状态; 3.其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。

  死亡状态(Dead):线程执行完了或者因异常退出了run()方法,该线程结束生命周期。

 1 /**
 2  * A thread state.  A thread can be in one of the following states:
 3  * <ul>
 4  * <li>{@link #NEW}<br>
 5  *     A thread that has not yet started is in this state.
 6  *     </li>
 7  * <li>{@link #RUNNABLE}<br>
 8  *     A thread executing in the Java virtual machine is in this state.
 9  *     </li>
10  * <li>{@link #BLOCKED}<br>
11  *     A thread that is blocked waiting for a monitor lock
12  *     is in this state.
13  *     </li>
14  * <li>{@link #WAITING}<br>
15  *     A thread that is waiting indefinitely for another thread to
16  *     perform a particular action is in this state.
17  *     </li>
18  * <li>{@link #TIMED_WAITING}<br>
19  *     A thread that is waiting for another thread to perform an action
20  *     for up to a specified waiting time is in this state.
21  *     </li>
22  * <li>{@link #TERMINATED}<br>
23  *     A thread that has exited is in this state.
24  *     </li>
25  * </ul>
26  *
27  * <p>
28  * A thread can be in only one state at a given point in time.
29  * These states are virtual machine states which do not reflect
30  * any operating system thread states.
31  *
32  * @since   1.5
33  * @see #getState
34  */
35 public enum State {
36     /**
37      * Thread state for a thread which has not yet started.
38      */
39     NEW,
40 
41     /**
42      * Thread state for a runnable thread.  A thread in the runnable
43      * state is executing in the Java virtual machine but it may
44      * be waiting for other resources from the operating system
45      * such as processor.
46      */
47     RUNNABLE,
48 
49     /**
50      * Thread state for a thread blocked waiting for a monitor lock.
51      * A thread in the blocked state is waiting for a monitor lock
52      * to enter a synchronized block/method or
53      * reenter a synchronized block/method after calling
54      * {@link Object#wait() Object.wait}.
55      */
56     BLOCKED,
57 
58     /**
59      * Thread state for a waiting thread.
60      * A thread is in the waiting state due to calling one of the
61      * following methods:
62      * <ul>
63      *   <li>{@link Object#wait() Object.wait} with no timeout</li>
64      *   <li>{@link #join() Thread.join} with no timeout</li>
65      *   <li>{@link LockSupport#park() LockSupport.park}</li>
66      * </ul>
67      *
68      * <p>A thread in the waiting state is waiting for another thread to
69      * perform a particular action.
70      *
71      * For example, a thread that has called <tt>Object.wait()</tt>
72      * on an object is waiting for another thread to call
73      * <tt>Object.notify()</tt> or <tt>Object.notifyAll()</tt> on
74      * that object. A thread that has called <tt>Thread.join()</tt>
75      * is waiting for a specified thread to terminate.
76      */
77     WAITING,
78 
79     /**
80      * Thread state for a waiting thread with a specified waiting time.
81      * A thread is in the timed waiting state due to calling one of
82      * the following methods with a specified positive waiting time:
83      * <ul>
84      *   <li>{@link #sleep Thread.sleep}</li>
85      *   <li>{@link Object#wait(long) Object.wait} with timeout</li>
86      *   <li>{@link #join(long) Thread.join} with timeout</li>
87      *   <li>{@link LockSupport#parkNanos LockSupport.parkNanos}</li>
88      *   <li>{@link LockSupport#parkUntil LockSupport.parkUntil}</li>
89      * </ul>
90      */
91     TIMED_WAITING,
92 
93     /**
94      * Thread state for a terminated thread.
95      * The thread has completed execution.
96      */
97     TERMINATED;
98 }
View Code

3. 说一个你最熟悉的设计模式

4. 讲一下你项目中用到了哪些设计模式

5. Java的hashmap的原理

6. Hashmap的线程安全性,什么是线程安全的?如何实现线程安全

7. Mysql的数据库引擎,区别特点

MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。注意,通过更改STORAGE_ENGINE配置变量,能够方便地更改MySQL服务器的默认存储引擎。它不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。

InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。(提供行级锁)。InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。

Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。memory使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是.frm。MEMORY类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。

Merge:允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。 Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。 Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。 Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。 Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。 一般来说不使用事务的话,请使用MyISAM引擎,使用事务的话,一般使用InnoDB

8. 写一个单例模式,答主写的是双检查锁单例,问了为什么用Volatile,synchronize移到方法最外面会怎么样?

9. 单例模式在你项目里哪些应用?

10. 数据连接池

11. 对高负载有了解么

12. 对高并发有了解么?

转载于:https://www.cnblogs.com/Java-Script/p/11090937.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值