Java异常:Exception和Error

一、基础概念程序中的错误:编译错误、运行时错误、逻辑错误。编译错误和运行时错误相对于逻辑错误好处理一些。Java中异常分为两类Exception和Error,这两个类都继承自 Throwable 类。Error(错误)表示程序自身无法处理的错误,表示程序存在较大问题。多数错误与编程人员操作无关,多表示JVM执行过程中的错误,当这类错误发生时虚拟机通常选择终止。这类错误有 StackOverFlowError、OutOfMemoryErrorException(异常)表示可以程序自身可以处理的错误

IO模型

IO模型

Java SPI 学习总结

https://zhuanlan.zhihu.com/p/28909673Java SPI 使用项目结构项目通过一个接口和两个实现类演示SPI的使用。一个上传接口,两个实现类提供上传到磁盘和OSS。第一步:创建接口和实现类上传接口:public interface Upload { void upload(String url);}两个实现类:public class UploadToDisk implements Upload { @Override public void

简单使用Java注解

关于学习使用注解的一些文章:https://blog.csdn.net/javazejian/article/details/71860633https://ifeve.com/java-annotations/https://www.runoob.com/w3cnote/java-annotation.htmlhttps://www.liaoxuefeng.com/wiki/1252599548343744/1265102413966176

深入理解Java多线程(四)锁、锁工具、并发容器

JUC提供了一套锁对象,分别时:Lock接口、AbstractQueuedSynchronizaer(队列同步器)、ReentrantLock、ReentrantReadWriteLock、Condition、LockSupport。Lock接口Lock接口定义了锁工具常用的方法,ReentrantLock、ReentrantReadWriteLock都是Lock的具体实现。lock()用于加锁unlock()释放锁lockInterruptibly()可中断加锁,线程持有锁后可被终端,中断后抛

深入理解Java多线程(三)JUC基础篇

这篇文章主要侧重讲JUC的多数类的使用,文章里贴了很多练习的代码,可以通过代码更加深刻的了解这些类的功能。 这篇文章主要总结了volatile、原子类、ReentrantLock、CountDownLatch、CyclicBarrier、Phaser、Semphore、Exchanger的使用,然后进行了一些对比。

深入理解Java多线程(二) 多线程问题总结

学了一段时间多线程方面的知识了总感觉掌握的知识有些散乱,在网上搜了一些面试问题总结梳理一下。多线程java中有几种方法可以实现一个线程?Java中有四种方式实现一个线程。通过实现一个Runnable继承Thread并重写run方法继承Callable,用Future接收可以实现异步调用使用线程池(executer)提交作业如何停止一个正在运行的线程?使用suspend可以挂起一个线程,使用stop可以终结一个线程,但这些方法已经不推荐使用,存在安全性问题,停止一个线程最好的方式是让它自然结束,常

深入理解Java多线程(一)线程基础

文章主要内容有:Java 线程的实现、 线程的创建、 线程状态、 线程状态获取示例、 线程的优先级、 守护线程、 原子性 & 同步、 synchronized、 锁升级的过程、 volitail、 ThreadLocal

深入理解Java集合框架

Java集合实现了常用数据结构,是开发中最常用的功能之一。Java集合主要的功能由三个接口:List、Set、Queue以及Collection组成。常见接口:List : 列表,顺序存储,可重复Set :集合,与数学中的集合有同样的特性:元素不能重复Queue:队列Collection:所有Java集合的接口,定义了“集合”的常用接口结构特征常用集合ArrayList 一种可以动态增长或缩减的索引集合,底层通过Ojbect[]数组实现,默认容量为10,在使用是如果确定仓储的数据容量应尽量为其初

Java内部类总结

介绍了四种内部类: 成员内部类、 静态内部类、 局部内部类、 匿名内部类,及它们的特点和使用。

【Java】Lambda表达式、函数式接口使用

Lambda是JDK8的新特性,Lambda让Java支持了函数式的编程,如JS那样可以在参数中使用函数(JS中函数是对象)。如何使用Lambda 示例在支持回调的方法中使用,典型的Runnable接口的run(),Comparator的compare()。 // 使用Lambda执行一个线程的run方法 new Thread(() -> { try { while (true) { System.out.pri

JVM内存区域

Java相交于C++具有内存自动管理功能,内存管理是个宽泛的概念,它即指实例化对象是的内存分配又指GC回收无用的类、对象、变量等。随着JVM不断发展,JVM内存区也在不断变化,这些变化在Java语言层面感知不到,因为字节码屏蔽了底层实现,了解JVM内存区域是深入学习Java的第一步,今天总结一下。JVM是《Java虚拟机规范》的实现《Java虚拟机规范》定义了Java字节码规范及实现Java的注意事项,而JVM是它的具体实现,它们是一对多的关系,很多公司(Sun、IBM、Redhat、甲骨文)都

【Apache POI】设置单元格字体、颜色、边框、对齐方式、Excel读取导入、解析工具类

这个工具类来源于我们项目的实践,简化了一些重复性的工作,欢迎尝试,欢迎提出问题。提供了设置单元格的基本背景颜色、字体、字号、字体颜色、边框等,还实现了导入导出、磁盘读写Excel。

几篇很好介绍Java加载机制的文章

在学模板方法(TemplateMethod)这种设计模式的时候我对类的调用过程产生了点疑惑,于是搜了一些文章读了读,这是几篇讲的不错了。这些文章讲得内容都涉及了jvm, 看来, 有空需要学习一下Java的虚拟机了!

轻松搞懂log4j2配置!

log4j配置入门, 如果你想了解一下日志是如果工作的可以看一下, 有些东西需要知其所以然.

Java静态代理Proxy动态代理

静态代理、Proxy动态代理、cglib动态代理
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×