Java常用知识(长期更新)】的更多相关文章

前言 2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化.在修改之前,我的说法是这样的: 就像鲸鱼吃虾米一样,也许吃一个两个虾米对于鲸鱼来说作用不大,但是吃的虾米多了,鲸鱼自然饱了. 代码优化一样,也许一个两个的优化,对于提升代码的运行效率意义不大,但是只要处处都能注意代码优化,总体来说对于提升代码的运行效率就很有用了. 这个观点,在现在看来,是要进行代码优化的一个原因,但不全对.在机械工艺发展的今天,服务器动辄8核.16核,64位CPU,代码执行效率非常高,Str…
1.0转义符 \n:换行 ,\n的作用和print后面的ln相同,可酌情使用 \t:一个制表位(一系列空格) 例: public class Schedule{ public static void main(String[] args){ System.out.println("\t\t*课程表*"); System.out.println("--------------------------------------------------"); System.…
Mysql的主键选择(主键自增,UUID,snowflake)? 使用自增长做主键的优点:1.很小的数据存储空间2.性能最好3.容易记忆使用自增长做主键的缺点:1.如果存在大量的数据,可能会超出自增长的取值范围2.很难(并不是不能)处理分布式存储的数据表,尤其是需要合并表的情况下3.安全性低,因为是有规律的,容易被非法获取数据使用GUID做主键的优点:1.它是独一无二的,出现重复的机会少2.适合大量数据中的插入和更新操作,尤其是在高并发和分布式环境下3.跨服务器数据合并非常方便4.安全性较高使用…
如果一个接口有2个不同的实现, 如何Autowire某一个指定的实现? 1.通过增加@Qualifier(实现类的名字): @Autowired @Qualifier("GirlStudentImpl") private Student student; 2.也可以通过@Resource(name=”*“)装配,则编程更加简洁: @Resource(name="GirlStudentImpl") private Student student; Spring注解(a…
GET 和 POST 的区别? get参数通过url传递,post放在request body中. get请求在url中传递的参数是有长度限制的,而post没有. get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息. GET和POST本质上就是TCP链接,并无差别.但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同. GET产生一个TCP数据包:POST产生两个TCP数据包. 对于GET方式的请求,浏览器会把http header和dat…
为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里? Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的.而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具. 物理分页和逻辑分页的区别?  mybatis自带的分页RowBounds;//逻辑分页 Java:            RowBounds rb=new RowBound…
先附一张JAVA虚拟机内存结构图: 其中JAVA虚拟机的线程问题<为什么JAVA虚拟机分为线程共享和非线程共享?>一文中已经有详细介绍,本文从面试中常问的一些JAVA虚拟机问题出发,主要从 堆空间的内存分配 JVM class类加载机制 JVM中的GC垃圾回收机制 三个大方面进行详细说明 堆空间的内存分配 HotSpot JVM①把年轻代分为了三部分:1个Eden区和2个Survivor区(分别叫from和to).默认比例为8:1,为啥默认会是这个比例,接下来我们会聊到.一般情况下,新创建的对…
#判断某个字段是否匹配指定值 awk -F"," '{if($4=="value"){print $1} else {print $0}}' file.txt #批量修改文件后缀名find /data/ -name "*.pdf"  |while read name;do na=$(echo $name|sed s'/pdf/PDF/g'); mv $name $na; donerename .txt .sh *.txt #在文件内容每个行首添加…
Servlet属于线程安全的吗? Servlet不是线程安全的! 谈谈转发和重定向的区别 请求转发: request.getRequestDispatcher("/king_l2lu.jsp").forward(request,response); 重定向: response.sendRedirect(request.getContextPath + "/king_l2lu.jsp"); 谈谈jsp的9大内置对象 1.request对象 request 对象是 ja…
MySQL主从热备份工作原理 简单的说:就是主服务器上执行过的sql语句会保存在binLog里面,别的从服务器把他同步过来,然后重复执行一遍,那么它们就能一直同步啦. 整体上来说,复制有3个步骤: 作为主服务器的Master,会把自己的每一次改动(每条sql语句)都记录到二进制日志Binarylog中. 作为从服务器Slave, 会用master上的账号登陆到 master上,读取master的Binarylog,写入到自己的中继日志 Relaylog. 然后从服务器自己的sql线程会负责读取这…