文章分类 -  java技术

摘要:由于String对象时不可变对象,因此在需要对字符串进行修改操作时(如字符串连接和替换),String对象总是会生成新的对象,所以其性能相对较差。 String常量的累加操作:对于静态字符串的连接操作,Java在编译时会进行彻底的优化,将多个连接操作的字符串在编译时合成一个单独的长字符串。 Stri 阅读全文
posted @ 2018-09-17 20:47 小码农成长记 阅读(79240) 评论(0) 推荐(3)
摘要:在Java中synchronized可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。 而synchronized底层是通过使用对象的监视器锁(monitor)来确保同一时刻只有一个线程执行被修饰的方法或者代码块。 对于同步控制,我们需要明 阅读全文
posted @ 2018-07-21 15:51 小码农成长记 阅读(2106) 评论(0) 推荐(0)
摘要:1、浅克隆 定义:在浅克隆中,如果原型对象的成员变量是值类型(即:基本数据类型),将复制一份给克隆对象;如果原型对象的成员变量是引用类型,则将引用对象的地址复制一份给克隆对象,也就是说原型对象和克隆对象的成员变量指向相同的内存地址。 简单来说,在浅克隆中,当对象被复制时只复制它本身和其中包含的值类型 阅读全文
posted @ 2018-07-17 23:15 小码农成长记 阅读(150) 评论(0) 推荐(0)
摘要:final作为Java中经常用到的关键字,了解final的使用方法是非常有必要的。这里从final关键字在数据域、方法和类中三个方面分析final关键字的主要用法。 一、final概述 概念:由字面可以了解,final有最终态,无法改变的意思。 使用目的:为了阻止改变与提高效率。 高效原因:Java 阅读全文
posted @ 2018-07-17 23:01 小码农成长记 阅读(350) 评论(0) 推荐(0)
摘要:1、transient的作用、使用方法 一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我 阅读全文
posted @ 2018-05-24 23:10 小码农成长记 阅读(156) 评论(0) 推荐(0)
摘要:一、this关键字 1.this关键字代表当前对象 this.属性——操作当前对象的属性; this.方法——调用当前对象的方法; 2.封装对象的属性的时候,经常会使用this关键字 (我们的属性名经常与参数名相同,为了区分属性和参数的概念,我们会在属性前加this关键字) 思考一下:此时如果去掉s 阅读全文
posted @ 2018-05-05 19:15 小码农成长记 阅读(216) 评论(0) 推荐(0)
摘要:Static关键字 从问题方面了解static关键字的使用: 问题一:为什么要使用static关键字?什么情况下才使用static关键字? 答:(1)一般情况,对象需要使用new来创建对象,数据存储空间才被分配,其类的变量或者方法供外界调用。 但上述方法,有两种情形是无法实现: ①只为某特定区域分配 阅读全文
posted @ 2018-05-05 16:15 小码农成长记 阅读(175) 评论(0) 推荐(0)
摘要:关于equals()与hashCode()的总结 一、equals()方法 实践表明,当equals()方法被override时,hashCode()也要被override。按照一般hashCode()方法的实现来说,相等的对象,它们的hash code一定相等。 二、hashcode()方法 实践 阅读全文
posted @ 2018-04-22 21:32 小码农成长记 阅读(97) 评论(0) 推荐(0)
摘要:始终覆盖toString 1、提供好的toString使类用起来更加舒服; 2、toString应该包含所有值得关注的信息; 3、无论是否指定格式,都应该为toString返回值中包含的所有信息,提供一种编程式的访问路径. 代码: 测试代码: 谨慎覆盖clone 概述 如果一个类实现了Cloneab 阅读全文
posted @ 2018-04-22 21:31 小码农成长记 阅读(182) 评论(0) 推荐(0)
摘要:Object有哪些公用方法? 答:Clone,getClas,toString,finalize,equals,hashCode,wai,notify,notifyAll方法。 1.什么时候需要覆盖hashCode? 答:复写 equals 的类也必须复写hashcode,否则无法结合基于散列的集合 阅读全文
posted @ 2018-04-22 20:26 小码农成长记 阅读(183) 评论(0) 推荐(0)
摘要:1.简介:Web应用为上传图片生成缩略图是常见的基本功能,通过缩略图生成提高了信息浏览时的性能,在保证用户使用体验的同时减少了数据传输量。 2.实现图片等比例缩略图生成,方式及相关工具介绍: (1)Thumbnailator类库(推荐) 工具:size()API方法 (2)Java AWT类库(复杂 阅读全文
posted @ 2018-04-03 20:02 小码农成长记 阅读(12941) 评论(0) 推荐(1)
摘要:一、方式一 简单工厂模式定义:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。 适用场 阅读全文
posted @ 2018-03-27 22:41 小码农成长记 阅读(201) 评论(0) 推荐(0)
摘要:1、什么是工厂模式? 答:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。创建对象时,不会对客户端暴露具体创建逻辑,只是提供统一创建的接口。可以满足不同条件下,创建不同的对象。 2、对象的 阅读全文
posted @ 2018-03-27 21:49 小码农成长记 阅读(137) 评论(0) 推荐(0)
摘要:1、什么叫单例模式? 答:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 2、单例模式的特点? 答:(1)单例类只能有一个实例。 (2)单例类必须自己创建自己的唯一实例。 (3)单例类必须给所有其他对象提供这一实例。 3、单例模式设计意图? 答:通过单例模式可以保证系统中一 阅读全文
posted @ 2018-03-24 21:49 小码农成长记 阅读(144) 评论(0) 推荐(0)
摘要:1.泛型最常用于集合,如Set和Map,以及单元素的容器,如ThreadLocal和AtomicReference。在这些用法中,它都充当被参数化了的容器。 2.例如,数据库行可以有任意多的列,如果能以类型安全的方式访问所有列就好了。幸运的是,有一种方法可以很容易地做到这一点。这种想法就是将键(ke 阅读全文
posted @ 2018-03-18 22:27 小码农成长记 阅读(385) 评论(0) 推荐(0)
摘要:Java 泛型基础: 1、为什么要使用java泛型? 场景分析:写一个排序方法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?那么肯定是使用java泛型,也就是写一个泛型方法来对一个对象数组排序。然后,调用该泛型方法来对整型数组、浮点数数组、字符串数组等进行排序。 2、泛型说 阅读全文
posted @ 2018-03-18 15:09 小码农成长记 阅读(173) 评论(0) 推荐(0)
摘要:对于不使用接口的业务类,无法使用JDK动态代理,cglib采用非常底层的字节码技术,可以为一个类创建子类,解决无接口代理问题。 动态代理和静态代理区别?? 解析:静态代理需要手工编写代理类,代理类引用被代理对象。 动态代理是在内存中构建的,不需要手动编写代理类。 代理的目的:是为了在原有的方法上进行 阅读全文
posted @ 2018-03-11 19:02 小码农成长记 阅读(4690) 评论(0) 推荐(0)
摘要:* 快速排序 * 设一组初始记录关键字序列为(49,38,65,97,76,13,27,49) * 则关键字49为基准而得到的一趟快速排序结果是? 网上快速排序的说明很多,这里摘抄一个作为说明: 快速排序是冒泡排序的改进版,也是最好的一种内排序,在很多面试题中都会出现,也是作为程序员必须掌握的一种排 阅读全文
posted @ 2018-02-04 20:14 小码农成长记 阅读(295) 评论(0) 推荐(0)
摘要:* 说明:棋牌 * 共有52张普通牌面,牌面为2,3,4,5,6,7,8,9,10,J,Q,K,A之一,大小递增,各四张;每人抓三张牌。两人比较手中三张牌大小,大的为胜。 * 规则: * 1、三张牌一样即为豹子 * 2、三张牌相连为顺子(A23不是顺子) * 3、有且仅有两张牌一样的为对子 * 豹子 阅读全文
posted @ 2018-02-04 13:20 小码农成长记 阅读(377) 评论(0) 推荐(0)
摘要:说明: 二分法查找 * 解析: * 一维数组,二分法查找:假如有一组数为1,2,3,4,5,6,7,8,9,10要查给定的值7. * 可设三个变量low,mid,high分别指向数据的前,中间和后,mid=(low+high)/2. * 注意:此序列是已按照递增排序(有序序列是第一步) * 思路:  阅读全文
posted @ 2018-02-01 08:32 小码农成长记 阅读(189) 评论(0) 推荐(0)