
面试题
编码指南针
生命不止,代码不息
展开
-
sql优化
sql优化1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null -- 可以在num列设置默认值0,然后通过=等号查询: select原创 2022-02-25 19:13:37 · 478 阅读 · 0 评论 -
事务的特性
事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consistency)、隔 离性(isolation)和持久性(durability)。原子性:执行单元中的操作要么全部执行成功,要么全部失败。如果有一部分成功一部分失败那么成功的操作要全 部回滚到执行前的状态。一致性:执行一次事务会使用数据从一个正确的状态转换到另一个正确的状态,执行前后 数据都是完整的。隔离性:在该事务执行的过程中,任何数据的改变只存在于该事务之中,对外界没有影响,事务 与事务之间是完全的原创 2022-02-24 21:52:44 · 333 阅读 · 0 评论 -
异常 处理
异常处理Java 中的两种异常类型是什么?他们有什么区别?答:Java 中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。相反,受检查的异常必须要用 throws语句在方法或者是构造函数上声明。throw 和 throws 有什么区别?throw 关键字用来在程序中明确的抛出异常,相反,throws 语句用来表原创 2022-02-22 21:03:04 · 161 阅读 · 0 评论 -
装箱与拆箱
装箱和拆箱自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把 int 转 化成 Integer,double 转化成 Double,等等。反之就是自动拆箱。原始类型: boolean,char,byte,short,int,long,float,double封装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double...原创 2022-02-21 21:42:39 · 224 阅读 · 0 评论 -
并发,并行,串行
并发 并行 串行串行在时间上不可能发生重叠,前一个任务没完成,下一个任务只能等待。并行在时间上是重叠的,两个任务在同一刻互不干扰的同时执行。并发允许两个任务彼此干扰。统一时间点,只有一个任务运行,交替执行。...原创 2022-02-20 20:08:12 · 121 阅读 · 0 评论 -
访问修饰符
访问修饰符public private default protected访问级别修饰符同类同包子类不同包公开public√√√√受保护protected√√√x默认default√√xx私有private√xxx一般不写时默认为default,在同一个包中相当于public ,对于不是同一个包的相当于private,protected对子类公开,同一个包中不是父子关系的相当于private。private 方法原创 2022-02-19 16:04:58 · 184 阅读 · 0 评论 -
String方法
String的常用方法•indexof();返回指定字符的的索引。•charAt();返回指定索引处的字符。•replace();字符串替换。•trim();去除字符串两端空格。•splt();字符串分割,返回分割后的字符串数组。•getBytes();返回字符串byte类型数组。•length();返回字符串长度。•toLowerCase();将字符串转换为小写字母。String 类被final修饰,不能被继承...原创 2022-02-18 22:29:41 · 130 阅读 · 0 评论 -
如何实现一个ioc容器
如何实现一个ioc容器配置文件配置包扫描路径递归包扫描获取.class文件反射,确定需要交给IOC管理的类对需要注入的类进行依赖注入配置文件中指定需要扫描的包路径定义一些注解,分别表示访问控制层,业务层,数据持久层,依赖注入注解,获取配置文件注解从配置文件中获取需要扫描的包路径,获取当当前路径下的文件信息及文件夹信息,将当前路径下所有以.class结尾的文件添加到一个Set集合中进行存储遍历这个Set集合,获取在类上有指定注解的类,并将其交给IOC容器,定义一个安全的Map用来存储这些对象原创 2022-02-17 21:43:40 · 664 阅读 · 0 评论 -
List和set
List和SetList:有序,按对象进入的顺序保存对象,可重复,允许多个null元素对象,可以使用Iterator取出所有元素,然后一一遍历取出,也可以使用get(int index) 获取指定下标的元素Set:无序,不可重复,最多允许有一个null元素对象,取元素时只能使用iterator接口取出所有元素,在一一遍历各个元素, List list = new ArrayList<>(); //集合 list.add(1); list.a原创 2022-02-16 20:58:42 · 242 阅读 · 0 评论 -
接口和抽象类
接口和抽象类的区别抽象类可以存放在普通成员函数,而接口中只能存在public abstract方法。抽象类中的成员变量可以时各种类型的,而接口张的成员 变量只能是public static final 类型。抽象类只能继承一个,接口可以实现多个。接口的设计,是对类的行为进行约束,强制要求不同的类具有共同的行为,它只约束行为的有无,但不对如何实现行为进行限制。而抽象类的设计,是代码的复用。当不同的类具有某些相同的行为A,并且其中一部分行为的实现方式一致时B,可以让这些类都派生于一个抽象类。在这个抽象原创 2022-02-15 21:36:37 · 212 阅读 · 0 评论 -
重载和重写的区别
重载和重写的区别重载在同一个类中,方法名必须相同,参数类型不同,个数不同,顺序不同, 方法返回值和访问修饰符可以不同,(方法名必须相同,括号里必须不同) 发生在编译时public String cz(){ return ""; } public int cz(int a){ return 0; } public int cz(int a,long b){ return 0; } protected in原创 2022-02-14 21:20:44 · 307 阅读 · 0 评论 -
String,StringBuffer,StringBuilder
String,StringBuffer,StringBuilderString是final修饰的,不可变,每次操作都会产生新的String对象StringBuffer和StringBuilder都是在原有对象上操作StringBuffer是线程安全的,StringBuilder线程不安全StringBuffer方法有synchronized修饰性能上:StringBuilder >StringBuffer>String在经常需要改变字符串内容时,使用后面两个优先使用StringBu原创 2022-02-13 21:15:08 · 226 阅读 · 0 评论 -
==和equals的深度理解
==和equals的区别==对比的是栈中的值,对于基本数据类型比较的是变量的值,引用类型是堆中内存对象的地址equals:在object中默认的也是采用==做比较,通常会重写String中已经重写过equals方法了,他是取出每一个字符做对比,判断是否相等。 String a="21"; String c = new String("21"); String d= c; System.out.println(a==c); //false原创 2022-02-12 22:14:58 · 328 阅读 · 0 评论 -
jdk,jre,jvm
jdk jre jvm 的理解jdkjava Develpemet Kit java 开发工具,开发者需要安装jrejava Runtime Environment java 运行时环境,运行Java程序需要安装jvmJava Virtual Machine java 虚拟机jdk包含jre :bin(jvm) lib(l类库)java工具 :Javac java jconsoleJava 文件运行过程.java =>经过Javac编译为=>.class文件===&原创 2022-02-11 21:36:01 · 1702 阅读 · 0 评论 -
面向对象的理解
面向对象 Java的面向对象是一种编程思想,对比面向过程,是处理一件事物的顺序及过程,而面向对象是把功能,特点,属性封装到对象之中,通过对象去处理具体的问题。例如:打电话的过程面向过程就是:人拨号 手机呼叫面向对象 会分为 :人 电话面向过程比较简单直接 高效,面对对象便于复用,扩展,维护。封装在于明确标识出允许外部使用的所有成员函数和数据项;简单点说就是把类中的某些信息隐藏,不允许外部程序直接拿调用,访问,而是通过该类提供的一些方法来进行对隐藏信息的操作。优点:原创 2022-02-10 21:18:15 · 304 阅读 · 0 评论