![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 86
zhuhaoyu6666
热爱编程、热爱生活、喜欢挑战
展开
-
枚举及常用场景
枚举类什么是枚举类枚举类的理解,类可以创建的对象数量是有限个,确定的,此时的类可以定义为枚举类 当需要定义一组常量时,强烈推荐使用枚举类 如果枚举类中只有一个对象,则可作为单例模式的实现方式 自定义枚举类/** *1.枚举类的使用 *1.1枚举类的理解,类的对象数量是有限个,确定的,此时的类可以定义为枚举类 *1.2当需要定义一组常量时,强烈推荐使用枚举类 *1.3如果枚举类中只有一个对象,则可以作为单例模式的实...原创 2022-01-10 14:17:11 · 540 阅读 · 0 评论 -
类加载
JVM进程被终止的情况:运行完正常结束 执行System.exit()或Runtime.getRuntime().exit() 遇到未捕获异常或错误而结束 强制结束JVM进程类使用/加载三步骤:装载、连接、初始化类的加载:指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象类的连接:负责把类的二进制数据合并到JRE中。又分为3个阶段:验证/校验:检查载入Class文件 准备:给类的静态变量分配存储空间并设置初始值 解析:非必须,将类的二进制数据中的原创 2020-07-22 23:40:20 · 118 阅读 · 0 评论 -
线程池设置多少个线程合适
分2派来自<<java并发编程实践>>书籍Nthreads=Ncpu*Ucpu*(1+w/c),其中Ncpu=CPU核心数 Ucpu=cpu使用率,0~1 W/C=等待时间与计算时间的比率来自《Java 虚拟机并发编程》的书籍线程数=Ncpu/(1-阻塞系数)其中为Ncpu为cpu核数分析对于派1,假设cpu100%运转,即撇开CPU使用率这个因素,线程数=Ncpu*(1+w/c)。现在假设将派2的公式等于...原创 2020-05-27 11:02:17 · 1439 阅读 · 0 评论 -
java中多态,你了解多少
什么是多态?多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式或(父子类方法重写父类引用指向子类对象,调用父类引用重写方法)即为多态。用白话来说,就是一个父类引用,赋值不同的子类对象,调用重写方法,得到不同的结果。总结如下:多态的3个表现形式接口和实现类不同实现对象赋值给接口引用,调用同一个方法,表现不同的行为父子类方法重写(含抽象类和其子类)不同子类对象赋值给父类引用,调用同一个重写方法,表现不同的行为多态一般讲的方法,当然也可原创 2020-05-26 15:54:01 · 133 阅读 · 0 评论 -
java方法重写
说明:父子类中,子类拥有和父类一样的方法(3同:方法名、参数列表、返回值都相同)参数列表相同说的参数的个数、参数类型及顺序都相同注意点:子类重写方法访问修饰符大于等于父类的方法 子类重写方法返回值类型要小于等于父类的方法返回值类型 子类重写方法声明抛出的异常类型不能超过父类的异常类型 只有父子类存在重写方法,才存在多态(父类引用可以调用子类的方法)...原创 2020-05-23 19:09:07 · 110 阅读 · 0 评论 -
方法重载
说明:方法重载说的是同一个类中或父子类,让一个类或对象有相同的方法名,但方法的参数不同(就是根据参数不同,来区分不同的方法的,不是根据返回值哦)特点:同一个类或对象拥有2个(含)以上同名的方法 根据参数不同区分方法(3不同,有一个不同就是方法重载)参数个数不同 参数类型不同 参数(类型)顺序不同免费学习java就加这个qq:2444874641...原创 2020-05-23 19:01:22 · 96 阅读 · 0 评论 -
java 构造器 总结
作用:2个通过关键字new 创建一个java对象 给对象初始化数据特点:4个没有返回值(也是跟其他方法差异之一)在声明构造器时没有返回值(更不会有返回类型),因此构造器中不会return语句 2. 构造器也是方法,但方法名跟其类名一样,作用就是创建对象和初始化对象的数据 3. 类中没有显示声明构造器(就是自己写代码时没有写),Java默认编译时自动生成无参构造器,如果显示声明有参构造器,必 须显示声明无参构造器。4. 构造器中this,就代表该构造器创建...原创 2020-05-23 18:51:44 · 133 阅读 · 0 评论 -
Java关键字package你知道多少?
作用:声明本类的包名(类的全限定名=包名+点号 +类名)package com.allen.bean;位置:java源代码的第1句号(非注释语句和空行)注意点:每个类都应该有包名即强烈建议java源码中出现package并指定包名 包名com.allen和com.allen.bean 这2个包名有什么关系?从java的角度说没有关系。但从业务和目录结构上说有包含的关系从业务上说:com.allen.bean是com.allen的子业务/模块 从目录上说:xx/…/xx/com...原创 2020-05-23 17:58:51 · 594 阅读 · 0 评论 -
36个Java 代码性能优化 技巧
养成习惯很重要养成习惯很重要养成习惯很重要(回头检查)代码优化的目标是1> 减小代码的体积2> 提高代码运行的效率代码优化细节1.尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以...原创 2019-11-21 09:46:45 · 120 阅读 · 0 评论 -
类加载2:如何确定jvm加载的类是我们预期的
1. 在Maven项目中,我们经常加入一下依赖,可依赖之间可能存在其他的依赖,导致可能某个jar引入多个不同版本的jar如何查找jvm加载的是哪个版本呢就需要这个工具帮忙处理了...原创 2019-03-07 23:08:28 · 115 阅读 · 0 评论 -
Mybatis入门之面向对象六大设计原则
面向对象六大设计原则1. 单一职责关键字:高内聚,低耦合说明:就是你写的类只要一个功能;甚至要求类的中的方法也只完成一个功能;这样引起此类变化的原因也只有一个2. 关闭原则关键字:对扩展开发,对修改关闭说明:对已有的类进行修改,是通过增加代码而不是修改现有代码;或者新建一个类3. 里氏替换原则关键字:继承(父子类)说明:在任何父类出现的地方都可以用其子类替换...原创 2019-01-30 18:05:56 · 323 阅读 · 0 评论 -
mybatis入门之XPath
XPath是什么? XPath 是一门语言。 是一门在 XML 文档中查找信息的语言 XPath 可用来在 XML 文档中对元素和属性进行遍历 官富文本编辑器 方回答: XPath 使用路径表达式在 XML 文档中进行导航XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准 主要学习...原创 2019-01-30 17:29:28 · 217 阅读 · 0 评论 -
跟Allen学Mybatis之五 typeHandler的作用
作用:就是解决jdbcType和javaType的转化,往往用于枚举类即平常我们所说的字典表。ps:其实在日常开发中很少使用,除非你在po里定义了枚举字段;一般我们都是利用数据库的函数比如Oracle decode,mysql使用when case else end 这样语句解决那为啥还要学习呢?是的,日常开发确实用不到,但如果你想学习ORM框架还是要了解一下的,因为ORM就...原创 2019-02-08 10:50:04 · 497 阅读 · 0 评论 -
filter 入门
1. 过滤器是什么?答:就是对客户端的请求进行筛选,符合条件的放行,不符合条件不放行;放行就是在doFilter(ServletRequest request, ServletResponse response, FilterChain chain)方法体中出现此句chan.doFilter(request,response);2. 开发步骤2.1> 使用eclipse创建一个转载 2017-11-06 21:15:46 · 263 阅读 · 0 评论 -
什么叫不可变类
定义:不可变类的意思是创建该类的实例后,该实例的属性是不可改变的;所以不可变类并不是指该类是被final修饰的,而是指该类的属性是被final修饰的自定义不可变类遵守如下原则:1> 使用private和final修饰符来修饰该类的属性。2> 提供带参数的构造器,用于根据传入的参数来初始化属性。3> 仅为该类属性提供getter方法,不要提供setter方法。并...原创 2017-11-08 21:05:28 · 2660 阅读 · 0 评论 -
JDK动态代理
1> 什么叫做JDK动态代理代理:调用对象----->代理对象------>目标对象 动态:代理类不像创建普通类一样创建,而是通过Proxy类的方法在内存/运行时创建;JDK:实现此功能的类都是JDK提供的2> JDK动态代理特点代理类和目标类实现共同接口;代理类在运行期间创建3>难点就是反射4> 具体知识点4.1 Proxy类.newProxyInstanc原创 2017-11-08 21:07:38 · 100 阅读 · 0 评论 -
spring 4入门之@Bean
1. 直接看源码@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Bean { String[] name() default {}; // 默认是修饰方法的方法名,可以通过name属...原创 2018-08-17 22:01:48 · 348 阅读 · 0 评论 -
跟Allen学Mybatis之一:如何使用jdbc操作数据库
主类:public class JdbcExample { /** * 获取连接 * @return */ private Connection getConnection() { Connection connection = null; try { // 1 加载驱动获取连接 ...原创 2019-01-28 11:44:10 · 286 阅读 · 0 评论 -
跟Allen学Mybatis之二:如何学习Mybatis
要想完全学会Mybatis,需要具备如下条件1. java SE、java EE eg:jdbc、动态代码、拦截器等2. XML的解析--XPath3. 设计模式4. 事务5.sql6.多线程如何学习Mybatis?1. 为什么学习mybatis?为什么不选型Hibernate2. 学习Mybatis到底学什么?1. 增删改查(含批量操作,主键返回等)2...原创 2019-01-28 15:52:20 · 138 阅读 · 0 评论 -
定义一个校验工具
作用:说白点了就是我们平时所说的参数检查1. 通过校验注解修饰java bean2. 通过自定义校验工具对其校验,校验失败抛出异常,返回前端1. 引入依赖<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifa...原创 2019-02-03 20:24:18 · 314 阅读 · 0 评论 -
获取spring上下文的工具类--一般很少用到
import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereoty...原创 2019-02-03 20:54:39 · 390 阅读 · 0 评论 -
基于拦截器的http请求前后监听工具
1. 自定义一个拦截器,关键在HandlerInterceptorAdapterimport com.mmall.util.JsonMapper;import lombok.extern.slf4j.Slf4j;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servl...原创 2019-02-03 21:24:55 · 1554 阅读 · 0 评论 -
ThreadLocal和过滤器结合实现请求拦截
说明:ThreadLocal的作用就是为了区分各个线程结合过滤器使用目的 就是保存一些数据,为了区分或者在某些时刻使用场景: 1. 分布式时打印日志太多,无法区分2. 保存一些数据,为了入库/使用时容易拿到以保存登陆用户信息为例:此例子使用于web.xml即基于servlet3.0之前1> 写个bean,存储数据public class Reques...原创 2019-02-04 16:22:03 · 1269 阅读 · 0 评论 -
跟Allen学Mybatis之四:Mybatis简单的例子
public class Chapter2Application { public static void main(String[] args) { SqlSession sqlSession = null; try { sqlSession = SqlSessionFactoryUtil.openSqlSession(); ...原创 2019-02-07 13:40:18 · 146 阅读 · 0 评论 -
跟Allen学习Mybatis之Resources类
Resources类在mybatis中的作用?答:加载配置文件转为Java对象Resources类可以作为我们实际开发中读取类路径下资源的工具类1> 根据资源路径获取其InputStream、InputStreamReader、URL、Properties对象2> 可以为InputStreamReader指定字符集3> 可以指定默认加载器package ...原创 2019-02-07 14:58:17 · 1480 阅读 · 0 评论