随笔分类 - java
摘要:我们在服务器开发的过程中,往往会有一些对象,它的创建和初始化需要的时间比较长,比如数据库连接,网络IO,大数据对象等。在大量使用这些对象时,如果不采用一些技术优化,就会造成一些不可忽略的性能影响。一种办法就是使用对象池,每次创建的对象并不实际销毁,而是缓存在对象池中,下次使用的时候,不用再重新创建,
阅读全文
摘要:将字符串直接进行遍历或者将字符串转变为字符数组,然后进行遍历: public static void main(String[] args) { String str = "ABCDEFABC"; char searchChar = 'B'; int count = 0; char[] charAr
阅读全文
摘要:创建一个以JDBC连接数据库的程序,包含7个步骤: 1、JDBC所需的四个参数(user,password,url,driverClass) user用户名 password密码 url定义了连接数据库时的协议、子协议、数据源标识。书写形式:协议、子协议、数据源标识 。 协议:在JDBC中总是以jd
阅读全文
摘要:接手别人的一个项目,Maven工程,导入后,某些jar包找不到,然后从同事那复制Maven本地仓库的文件夹到我的电脑,发现依旧找不到。问题大致总结为:本地maven仓库存在jar,但是依然报Missing错误。原因没找到,但是有解决方案。先把本地仓库jar包复制出来,顺便放在一个地方,然后删除本地仓
阅读全文
摘要:JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法
阅读全文
摘要:1. Set和Map Set代表一种集合元素无序、集合元素不可重复的集合,Map则代表一种由多个key-value对组成的集合,Map集合类似于传统的关联数组。表面上看它们之间相似性很少,但实际上Map和Set之间有莫大的关联。 1.1 Set和Map的关系 在看Set和Map之间的关系之前,先来看
阅读全文
摘要:所谓注解,是代码里做的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用注解,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的描述源代码的信息(这些信息被存储在注解的“name=value”的键值对中)。代码分析工具、开发工具和部署工具可以通过这些补充的描述源
阅读全文
摘要:项目上需要写一个缓存,这样就不需要频繁地访问数据库,我使用的是 基本思想是LRU(last recently used)算法,即最近最少使用的。LinkedHashMap类简直是为其量身打造的。 先介绍何为LRU,LRU(Least recently used,最近最少使用)算法根据数据的历史访问记
阅读全文
摘要:所谓反射,可以理解为在运行时获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段就决定使用的类型,但是在反射机制的帮助下,编程人员可以在运行时动态地获取这些信息。 1 反射概述 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念
阅读全文
摘要:所谓“块”,就是用{}所包含的代码段,它们在逻辑上常常是一个整体。初始化块主要用于对象的初始化操作,在创建对象时调用,可以用于完成初始化属性值、加载其他类等功能。初始化块的执行顺序在构造方法之前,如果构造方法多次重载,此时可以考虑将构造方法中共通的代码提到初始化块中定义。 非静态初始化块主要用于对象
阅读全文
摘要:为了将赋值操作简便化,Java提供了很多扩展赋值运算符,例如+=、-=、/=、*=等等,那么问题来了,x += 1与x = x +1两者相同吗? 结果: 看起来结果是一样的,但是再看下面一个例子。 编译错误的原因是对于j + 1,结果为int类型,而左边为short类型,需要类型强制转换。i +=
阅读全文
摘要:一、this Java中为了解决变量的命名冲突和不确定性问题,引入了关键字this。this代表当前类的一个实例,它经常出现在方法和构造方法中,具体使用情况有以下三种: 1,返回调用当前方法的对象的引用。 上面的this表示的Increase的实例,也就是in。 2,在构造方法中调用当前类的其它构造
阅读全文
摘要:摘要: 面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式通过共享技术实现相同或相似对象的重用提高系统资源的利用率。本文首先阐述了享元模式要解决的问题和解决问题的理念,然后从实现角度重点
阅读全文
摘要:最近看到一篇文章,初步介绍java.io.InputStream,写的非常通俗易懂,在这里我完全粘贴下来。 来源于 https://mp.weixin.qq.com/s/hDJs6iG_YPww7yeiPxmZLw 在学习java.io.*包的时候,Input-Stream那一群类很让人反感,子类繁
阅读全文
摘要:首先我们先看看接口的定义: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包
阅读全文
摘要:本文简单认识JDK8的重要新特性之一——Lambda表达式。 在JDK8之前,Java是不支持函数式编程的,所谓的函数编程,即可理解是将一个函数(也称为“行为”)作为一个参数进行传递。通常我们提及得更多的是面向对象编程,面向对象编程是对数据的抽象(各种各样的POJO类),而函数式编程则是对行为的抽象
阅读全文
摘要:今天碰到了 public static String getAutoRelateRelationship(final JSONObject modifyJson, String... inUsedConn) {...},其中有可变参数列表。其定义格式为:访问修饰符 返回值类型 方法标识符(参数类型
阅读全文
摘要:synchronized,形容词,意思是同步的。在多线程中经常用到,我们经常遇到多个线程访问同一个 共享资源 ,这时候必须考虑如何维护数据一致性,在java中synchronized关键字被常用于维护数据一致性。synchronized机制是给共享资源上锁,只有拿到锁的线程才可以访问共享资源,这样就
阅读全文
摘要:一,定义 函数式接口,英文为Functional Interface。首先它是一个接口,那么它与其它接口有什么不同呢?不同点就是在这个接口中只允许有一个抽象方法。 这里的只允许一个抽象方法不包括以下几种情况:1,函数式接口里面允许有默认方法。我觉得可能是java设计师考虑到默认方法不是抽象的,它有默
阅读全文
摘要:今天分析一下String,String有很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品。用final就是拒绝继承,防止内部属性或方法被破坏。 一,什么是不可变? String不可变很简单,如图,给一个已有字符串“abcd”,第二次赋值为“abcde”,不是在原内存地址上修改数据,而是重
阅读全文