JAVA常用知识总结(一)】的更多相关文章

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…
为什么说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,为啥默认会是这个比例,接下来我们会聊到.一般情况下,新创建的对…
Servlet属于线程安全的吗? Servlet不是线程安全的! 谈谈转发和重定向的区别 请求转发: request.getRequestDispatcher("/king_l2lu.jsp").forward(request,response); 重定向: response.sendRedirect(request.getContextPath + "/king_l2lu.jsp"); 谈谈jsp的9大内置对象 1.request对象 request 对象是 ja…
项目中用到的不常见sql语法 1:空值不在前的排序 select a.* from WZX_SCZY A order by SCZY_START_TIME desc nulls last (不加nulls last的时候 空值会在前面)      --oracle 2:Oracle数据库查询两个表中差异值的优秀解法(MINUS) 表A中记录为1 2 3 9 表B中记录为2 3 4 5 现在要查询出1 9,可以用下面三个语句 (1)select a.num from A a where a.num…
sleep和wait的区别? sleep()来自Thread类,和wait()来自Object类.调用sleep()方法的过程中,线程不会释放对象锁.而 调用 wait 方法线程会释放对象锁 sleep()睡眠后不出让系统资源,wait让其他线程可以占用CPU sleep(milliseconds)需要指定一个睡眠时间,时间一到会自动唤醒.而wait()需要配合notify()或者notifyAll()使用 notify()和notifyAll()有什么区别? 如果线程调用了对象的 wait()…
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…
简单介绍一下 Linux 文件系统? 在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡.磁盘驱动器.打印机.输入输出设备.普通文件或是目录都被看作是一个文件. 也就是说在LINUX系统中有一个重要的概念:一切都是文件.其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来.在UNIX系统中,把一切资源都看作是文件,包括硬件设备.UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问. 文件类型与…
先附一张java集合框架图 下面根据面试中常问的关于集合的问题进行了梳理: Arraylist 与 LinkedList 有什么不同? 1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全: 2. 底层数据结构: Arraylist 底层使用的是Object数组:LinkedList 底层使用的是双向链表数据结构(注意双向链表和双向循环链表的区别①): 3. 插入和删除是否受元素位置的影响: ① ArrayList② 采用数组存储,所以插入和…
JAVA中的参数传递总结先看两道笔试题: public class Test2 { public static void main (String [] args) { StringBuffer a = new StringBuffer ("A"); StringBuffer b = new StringBuffer ("B"); operate (a,b); System.out.println(a+","+b); } static void…
try catch finally 的详细用法: public static int testBasic(){ int i = 1; try{ i++; System.out.println("try block, i = "+i); }catch(Exception e){ i ++; System.out.println("catch block i = "+i); }finally{ i = 10; System.out.println("final…
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主从热备份工作原理 简单的说:就是主服务器上执行过的sql语句会保存在binLog里面,别的从服务器把他同步过来,然后重复执行一遍,那么它们就能一直同步啦. 整体上来说,复制有3个步骤: 作为主服务器的Master,会把自己的每一次改动(每条sql语句)都记录到二进制日志Binarylog中. 作为从服务器Slave, 会用master上的账号登陆到 master上,读取master的Binarylog,写入到自己的中继日志 Relaylog. 然后从服务器自己的sql线程会负责读取这…
Maven有哪些优点和缺点? 优点如下: 简化了项目依赖管理: 易于上手,对于新手可能一个"mvn clean package"命令就可能满足他的工作 便于项目升级,无论是项目本身升级还是项目使用的依赖升级. 有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译. maven有很多插件,便于功能扩展,比如配置反向生成工具等 缺点如下: maven是一个庞大的构建系统,学习难度大 maven采用约定优于配置的策略(convention o…
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能帮助大家.大致的结构: 1.[Java面向对象] 2.[Java集合详解] 3.[Java IO相关操作] 4.[Java 8函数编程] 5.[常用设计模式] 6.[Spring MVC] 7.[MyBatis] 8.[Vue.js] 9.[Spring Boot] 10.[实例(结合Spring…
java常用名词解释: OO: object-oriented ,面向对象 OOP:object-oriented programming,面向对象编程 Author:JCC Object:对象JDK:Java development kit, java开发工具包 JVM:javavirtual machine ,java虚拟机 Compile:编绎 Run:运行Class:类 System:系统 out:输出 print:打印 line:行 variable:变量 type:类型 get:得到…
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常用基础包,在开发中会自动导入到代码环境中,不需要import. 1.基本数据类型/包装类 (1)基本数据类型:byte.short.int.long.float.double.char.boolean (2)包装类: Byte:–提供了将字节数据转换为其他类型的方法,从Number抽象类继承过来.d…
1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因:String是字符串常量,StringBuffer,StringBuilder是字符串变量; 每当用String操作字符串时,实际上是在不断的创建新的对象,而原来的对象就会变为垃圾被GC回收掉;而StringBuffer与StringBuilder是字符串变量,是可改变的对象,用它们对字符串做操作时,实际上…
Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让你清楚明白,为什么工作中会常用ArrayList和CopyOnWriteArrayList?了解底层实现原理,我们可以学习到很多代码设计的思路,开阔自己的思维.本章通俗易懂,还在等什么,快来学习吧! 知识图解: 技术:ArrayList,LinkedList,Vector,CopyOnWriteAr…
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数据类型 基本数据类型主要有: byte.short.int.long.float.double.char.boolean 它们可以分为三类: 数值类型:byte.short.int.long.float.double 字符类型:char 布尔型:boolean 其中byte是8位,short是16位…
Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来的一个新的子类.子类可以继承父类原有的属性跟方法. 也可以自己增加特有的属性跟方法. 代码例如下: public class Anmail { public void eat() { System.out.println("父类吃"); } }父类代码 子类代码: public class…
Java开发知识之Java的数字处理类Math类 一丶Java.text.DecimalFormat类与NumberFormat类 首先 Java.text.DecimalFormat指的是DecimalFormat类在Java.text包中. 其中DecimalFormat类是NumberFormat的子类. 这个类的作用: 这个类的作用就是格式化我们的数值的. 比如: 看如下代码: public static void main(String[] args) { // TODO 自动生成的方…
Java开发知识之Java的包装类 一丶什么是包装类 包装类的意思就是对基本数据类型封装成一个类.这些类都是Number的子类.区别就是封装数据类型不同.包含的方法基本相同. 具体可以查询JAVA API. 以整形包装类为例 Integer类. 位于 Java.lang包. 二丶包装类使用简介 1.构造方法. 包装类中有两个构造方法 1.Integer(int number);  传入一个int值.获取一个Integer类.来操作. 2.Integer(String str); 传入一个字符串.…
Java开发知识之Java面相对象上 一丶什么是面相对象 了解什么什么是面相对象.那么首先要了解什么是面相过程. 面相过程的意思就是. 什么事情都亲力亲为. 比如上一讲的排序算法. 我们自己写的. 这个就是面相过程. 而使用面相对象的话.我们直接调用别人写好的sort()方法即可. 面相过程的比喻:  你想吃东西. 买东西. 切菜. 下锅. 做好了. 吃饭. 面相对象:  直接商店买了. 直接吃.  你省去了买东西. 切菜 下锅. 自己做的步骤. 这个就是面相对象. 1.1对象的理解 现实世界中…
Java开发知识之Java数组 一丶数组简介 首先,不管是Java 还是 C++ 还是其它语言.都有数组. (有可能叫法不同) 数组简而言之就是存储一段连续相同数据类型的数据结构 在Java中数组可以看成是一个对象. C++ 中数组就是数组. Java中的数组其实是封装的数组.虽然是由基础类型组成.但可以当对象使用. C++中的则不可以. 数组可以分为一维数组. 二维数组. 三维数组 .高维数组.. 二丶一维数组 使用数组我们就要学会声明 1.数组的声明 在Java中数组是new出来的.所以我们…
Java常用的加密解密类 原文转载至:http://blog.csdn.net/wyc_cs/article/details/8793198 原创 2013年04月12日 14:33:35 1704 最近做一个项目,想到以前所有的项目在用户注册与登录及所有涉及用户自身隐私的信息进行提交到后台时都没有进行加密处理,甚至直接以明文方式在网络上传输,同时直接以明文的方式存到数据库中.所以想到需要先进行加密处理之后再进行网络传输,最后将加密后的数据存到数据库中,这样也可以增强系统的安全性. 对于加密与解…
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的语法,对象的定义,类.接口.继承.静态.动态.重载.覆盖这些基本的概念和使用方法,到稍微高级一点的多线程,文件读写,网络编程,GUI使用,再到之后的反射机制.序列化.与数据库的结合等高级一点的用法,最后将设计模式应用其中,产生了一个个新的概念,比如Spring.Spring MVC.Hibernat…
转载:https://www.jianshu.com/p/6c078abb720f java基础知识 java内存模型 java运行时数据区域 hashMap 如何解决冲突 存储方式 冲突达到一定数量改用红黑树存储等 ConcurrentHashMap 段的概念 分段锁机制(读不加锁,写加锁) 大概的原理,先定位到某个段,然后段里面的操作交给hashmap try finally块的处理 -try里面return某个(引用类型 值类型),finally块对其进行操作,最后结果 synchromi…
图解Java常用数据结构(一)  作者:大道方圆 原文:https://www.cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的. HashMap中的单链表是尾插, 而不是头插入等等, 后文不再赘叙这些差异, 本文目录结构如下: Link…