1. 1
  2. 2
  3. 3
最新发布 每页10条   共296条   当前第19页
  • 应该选

    java 动态字节码技术和类加载

    yexindonglai@163.com 2022-03-01 12:04 Java

    1017°

    0

     字节码有什么用?1、对类的基本信息进行操作,可以新增、删除、修改类、属性和方法;2、应用场景:Lombok插件、AOP、动态修改class文件、网页上的在线执行java代码也是字节码实现的;2、Lombok插件就是用字节码实现,只用Data注解就可以给属性自动加上get和set方法4、常见的字节码操作类库:  BCEL: 深入汇编底层语言进行类库操作;   ASM: 轻量级字节码操作框架,直接涉及到jVM底层的操作和指令;高性能、高质量    CGLB:生成类库,基于ASM实现   javassist:开源框架,编辑和创建Java字节码的类库,我们这里主要介绍javassistjavassi
  • 应该选

    设计模式 -- 单例模式

    yexindonglai@163.com 2022-03-01 12:02 设计模式

    806°

    0

    单例模式的特点   1、保证在jvm中只有一个实例;   2、应用场景:servlet、springioc(默认单例)、连接池、线程池、枚举、常量;   3、优点:节省内存,重复使用,方便管理   4、缺点:有线程安全问题; 单例模式的分类    1、懒汉式:将单例对象设为静态属性并加上final修饰符,初始化单例类时就立即创建对象实例,天生线程安全;调用率高      2、饿汉式:将单例对象设为静态属性并加上final修饰符,初始化单例类时不会立即创建对象实例,而是在使用的时候才创建实例,使用懒加载功能;此方式是线程不安全的      3、内部静态类方式:新建一个内部类,将单例对象设为静态属
  • 应该选

    设计模式 -- 工厂模式

    yexindonglai@163.com 2022-03-01 12:01 设计模式

    847°

    0

    工厂的指责就是制作产品,那么产品就可以理解为是我们的对象,而工厂就是为了实例化对象而对象的,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。 1、简单工厂模式简单工厂模式:也叫静态工厂模式,简单工厂模式相当于试试一个工厂中有各种产品,创建在一个类中,客户无需知道具体产品的名称,只需要知道产品的参数即可,相当于所有的汽车都是由一个厂里面生产出来的的,这个厂既能生产宝马,又能生产奔驰,还能生产其他的品牌的汽车,但是工厂的职责过重,而且当类型过多时不利于系统的扩展维护;简单工厂模式是不属于23种设计模式里面的;简单工厂模式示例代码packagec
  • 应该选

    JSQLParser 解析sql语句框架详解

    yexindonglai@163.com 2022-03-01 12:00 Java

    2505°

    0

    因公司有需求,需要根据用户输入的sql中获取到表名,网上查询到有个框架很实用,于是就小试牛刀,此框架是githup团队研发的一款sql解析框架,也是公认最好用的,不单可以解析sql,还可以用来拼接sql; 使用前先导入maven,目前最新版本已经更新到4.0了,童鞋们根据自己实际情况来选择相应版本<dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>1.2</version></dependency> 代码案例,因为我笔者这边只用到获取表名的功能,所以案例里
  • 应该选

    JAVA 127和128分别用== 号判断,竟然一个为true一个为false

    yexindonglai@163.com 2022-03-01 11:59 Java

    688°

    0

     先看代码publicstaticvoidmain(String[]args){Integerone=127;Integertwo=127;System.out.println(one==two);Integerone_1=128;Integertwo_1=128;System.out.println(one_1==two_1);}打印结果如下哎~,这就奇怪了,都是数字,同样符号来判断,竟然会有不同的结果;当我看源码之后才知道,当我写下这段代码Integerone=127;但其实,在底层的代码其实是这样的Integerone=Integer.valueOf(127);这时候我们进去valueO
  • 应该选

    java线程池底层运行过程以及参数详解

    yexindonglai@163.com 2022-03-01 11:58 Java

    611°

    0

    相信线程池这个东东只要只要是做过开发的童鞋们都熟悉,面试也是经常会问到的一个问题,用起来那是相当地简单啊,而且功能强劲,优化的又好,使用还去除了冗余的代码层级,提高了代码的可读性,创建线程池只需要用到四种newCachedThreadPool   创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool     创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。newSingleThreadExecutor 创建
  • 应该选

    JAVA队列( Queue ) 详解

    yexindonglai@163.com 2022-03-01 11:57 Java

    663°

    0

    什么是队列?   队列是一种特殊的线性表,遵循先入先出、后入后出的基本原则,一般来说,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,但是java的某些队列运行在任何地方插入删除;比如我们常用的LinkedList集合,它实现了Queue接口,因此,我们可以理解为 LinkedList就是一个队列;java队列特性队列主要分为阻塞和非阻塞,有界和无界、单向链表和双向链表之分;阻塞和非阻塞阻塞队列      入列(删除元素)时,如果元素数量超过队列总数,会进行等待(阻塞),待队列的中的元素出列后,元素数量未超过队列总数时,就会解除阻塞状态,进而可以继续入列;      出列(添加元素)
  • 应该选

    idea每次创建项目JDK版本都是1.5的解决方法

    yexindonglai@163.com 2022-03-01 11:54 设计模式

    958°

    0

    因为版本不同,每次运行main方法进行测试的时候都会报以下错误:      Error:java:Compilationfailed:internaljavacompilererror所以每次都得去设置里面改回来,用起来很是麻烦 但是现在有一种非常好用的方法,就是直接修改maven的配置文件,我们先看看使用的maven是哪个版本的,版本下会直接显示出maven的目录地址,先进入maven3目录下的conf目录,settings.xml文件就藏在这里;我们打开settings.xml文件,在<profiles>标签下新增profile,加入以下内容即可,默认是被注释掉的<profiles> <p
  • 应该选

    设计模式 -- 代理模式 静态代理和动态代理

    yexindonglai@163.com 2022-03-01 11:53 设计模式

    813°

    0

     代理模式的定义:  代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用,可以理解为是托管的作用,就像手机里的欢乐斗地主一样,我可以自己决定打什么牌,也可以用托管的方式让电脑帮我决定打什么牌,这时候电脑就帮我做了很多事情,我只需要像葛优一样躺在那静静地看着就好了,这种托管的形式就叫做代理模式;    在电脑程序中,一个对象创建后交给代理模式去管理,除了程序原有的逻辑,代理类还会为这个对象增加额外的逻辑处理,简单地说就是在不改变原代码的情况下来达到扩展功能的目的,一个简单的代理模式结构示意图如下 代理模式使用场景  面向切面编程(springAOP)、事务管理、日志打印、权限控
  • 应该选

    设计模式 -- 建造者模式

    yexindonglai@163.com 2022-03-01 11:52 设计模式

    750°

    0

      建造者模式原话:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;其实就是将一个对象详细化,比如把人分为美国人、日本人、中国人、韩国人、非洲人,每一种人都有不同的肤色、身高、头部特征;其实仔细看,建造者模式和工厂模式很像,很多人将这2者傻傻分不清楚,其实,工厂模式创建的是单个类,而建造者模式是将一个类型的东西集中起来进行管理,比如人类,它的里面会有很多分类:  1、黑皮肤、大高个、做事拖拉懒散,将这三者结合起来就成为一个类型:黑人;  2、黄皮肤、个子纤瘦、做事严谨、严丝合缝,将这四者结合起来就成为一个类型:日本人; 像肯德基或者麦当劳里面的套餐,将汉堡、可乐、奶