Java中请优先使用try-with-resources而非try-finally Java库包含了很多需要手工调用close方法来关闭的资源.比如说InputStream.OutputStream及java.sql.Connection.关闭资源常常会被客户端所忽视,这会导致可怕的性能问题.虽然很多资源使用了终结器来作为安全网,不过终结器却并不那么尽如人意. 从历史上来看,try-finally语句是确保资源会被恰当关闭的最佳方式,即便在遇到异常或是返回语句时亦如此: // try-final…
Windows10下java环境配置 更新:2020年11月25日 电脑环境: windows10 64位 一.下载jdk 首先到Oracle网站下载对应操作系统的jdk安装包. https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 也可以用我提供的安装包(下载日期为2020.11.25Java SE Development Kit 8最新版) 链接:https://pan.baidu.com/s/1…
一.为何引入包? 包机制是Java中管理类的重要手段. 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理. 包对于类,相当于文件夹对于文件的作用.(同一文件夹中不允许有重名的文件,但不同文件夹中可以有重名文件.同理同一包中不允许有重名类) 二.命名规范 1. 通常是类的第一句非注释性语句. 2. 包名:域名倒着写即可,再加上模块名,便于内部管理类. 如:com.baidu.oa.view  ( 域名(百度)-项目名称(oa)-模块(view 视图) )…
java中的clone clone构造器及其静态工厂的变形 优点:它们不依赖于某一种很有风险的,语言之外的对象创建机制; 它们不要求遵守尚未制定好文档的规范 他们不会于final域的正常使用发生冲突 它们不会抛出不必要的受检异常 它们不需要进行类型转换 /** * 1.必须继承Cloneable接口 * 2.必须重写Object类中的clone()方法 – * Cloneable接口改变了接口的通用规范,它改变了超类中受保护的方法的行为 * –无需构造器就可以创建对象 * a.clone对象分配…
/* 需求:获取一段程序运行的时间. 原理:获取程序开始和结束的时间并相减即可. 获取时间:System.currentTimeMillis(); 当代码完成优化后,就可以解决这类问题. 这种方式,模版方法设计模式. 什么是模版方法呢? 在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定的部分, 那么这时就将不确定的部分暴露出去.由该类的子类去完成. */ abstract class GetTime { public final void getTime() {…
常用的垃圾回收算法 标记-清除 标记清除算法是一种非移动式的回收算法,分为标记 清除 2个阶段,简而言之就是先标记出需要回收的对象,标记完成后再回收掉所有标记的内存对象,如下图 可见回收后图中被标记的对象被删除回收了,但是碎片化比较严重不连续 对于下次分配大对象的时候由于内存不连续性影响比较大,而且每一次Gc的时候需要执行2个操作 1次标记 1次回收 标记-整理压缩 标记整理压缩算法是一种移动式的算法,由于上面标记清除算法导致内存不连续的问题 标记-整理算法就解决了这个问题. 工作原理也是2阶段…
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API.Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的.看来Java已经意识到需要为时间及日期功能提供更好的支持了,这对已经习惯使用Joda时间日期库的社区而言也是件好事.关于这个新的时间日期库的最大的优点…
文件加载方式有两种: 使用文件系统自带的路径机制,一个应用程序只能有一个当前目录,但可以有Path变量来访问多个目录 使用ClassPath路径机制,类路径跟Path全局变量一样也是有多个值 在Java中,优先使用ClassPath,因为很多程序库在更改路径时更改的是ClassPath而不是Path,比如maven项目把resources目录添加到了classpath里面而没有更改path.在这两种路径表达方式中,/都表示根路径. 可以说:path方式使用的是文件系统的方式:classpath使…
前言 这里总结一下泛型中需要注意的一些地方和面试题,通过面试题可以让你掌握的更清楚一些. 泛型相关问题 1.泛型类型引用传递问题 在Java中,像下面形式的引用传递是不允许的: ArrayList<String> arrayList1=new ArrayList<Object>();//编译错误 ArrayList<Object> arrayList1=new ArrayList<String>();//编译错误 我们先看第一种情况,将第一种情况拓展成下面的…
[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第十一章 持有对象 11.1 泛型和类型安全的容器>eg: List<String> 容器中可以插入该泛型类子类都可以放置进去11.2 基本概念 (1)Collection. 一个独立元素的序列,这些元素都服从一条或多条规则.List 必须按照插入的顺序保存元素,而Set不能有重复元素 Queue按照排队规则来确定对象产生的顺序 (2)Map. 一组成对的"键值对&…