“==”是指对内存地址进行比较 , equals()是对字符串的内容进行比较
方法重载:
1、同一个类中
2、方法名相同,参数列表不同(参数顺序、个数、类型)
3、方法返回值、访问修饰符任意
4、与方法的参数名无关
方法重写:
1、有继承关系的子类中
2、方法名相同,参数列表相同(参数顺序、个数、类型),方法返回值相同
3、访问修饰符,访问范围需要大于等于父类的访问范围
4、与方法的参数名无关
区别点 重载方法 重写方法
参数列表 必须修改 一定不能修改
返回类型 可以修改 一定不能修改
异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常
访问 可以修改 一定不能做更严格的限制(可以降低限制)
1.什么时候需要加static:当一个方法或者变量需要初始化加载,或者是经常被调用的.
2.类中被static修饰的变量在类的方法中可以使用类名调用、self调用、static调用
3.类中被static修饰的方法,同样可以使用类名调用、self调用、static调用
4.类中被static修饰的方法,在外部可以直接使用类名进行调用。
5.static变量和普通变量的区别在于非静态全局变量的作用域不同
StringBuffer 和 StringBuilder 都是两种字符串处理类、StringBuffer是线程安全的、StringBuilder不是线程安全的
StringBuffer线程安全,但是内存开销比较大;
StringBuilder线程不安全,但是内存开销比较小;
不管有木有出现异常,finally块中代码都会执行;
Controller,Service和Repository
控制,服务,连接数据源
1.查看线程pid,可以使用top命令:
top
2.使用jstack命令dump线程信息(需使用启动当前线程的用户下执行该命令)
jstack 1221 > dump1
3.统计所有线程都处于什么状态:
grep java.lang.Thread.State dump1 | awk '{print $2$3$4$5}' | sort | uniq -c
8 RUNNABLE
2 WAITING(onobjectmonitor)
Spring以IoC、AOP为主要思想,其中IoC,Inversion of Control 指控制反转或反向控制。在Spring框架中我们通过配置创建类对象,由Spring在运行阶段实例化、组装对象。
AOP,Aspect Oriented Programming,面向切面编程,其思想是在执行某些代码前执行另外的代码,使程序更灵活、扩展性更好,可以随便地添加、删除某些功能。Servlet中的Filter便是一种AOP思想的实现。
Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
即Spring在JavaEE的三层架构[表现层(Web层)、业务逻辑层(Service层)、数据访问层(DAO层)]中,每一层均提供了不同的解决技术。如下:
• 表现层(Web层):Spring MVC
• 业务逻辑层(Service层):Spring的IoC
• 数据访问层(DAO层):Spring的jdbcTemplate
1、Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted
set:有序集合)。
2、集群模式和哨兵模式的区别
哨兵模式监控权交给了哨兵系统,集群模式中是工作节点自己做监控哨兵模式发起选举是选举一个leader哨兵节点来处理故障转移,集群模式是在从节点中选举一个新的主节点,来处理故障的转移第三个问题:分布式锁实现的三种方式
1. 基于数据库实现分布式锁;
2. 基于缓存(Redis等)实现分布式锁;
3. 基于Zookeeper实现分布式锁;