Java
文章平均质量分 71
叶晚林
学习路上。
展开
-
Java|BIO、NIO、AIO
在很多面经里都有这样的问题:说说BIO、NIO、AIO说说Linux的IO模型说说select、poll、epoll最开始对这些名词一点都摸不着头脑,粗略了解了BIO、NIO、AIO是什么,其中涉及到“同步/异步、阻塞/非阻塞"这些名词,更是被搞的云里雾里。BIO是在学习JavaSE的时候,网络编程讲的内容,大概知道是怎么回事,但从来没有思考过它有什么问题。对于select、poll、...原创 2019-08-25 19:49:57 · 502 阅读 · 0 评论 -
Spring|Spring事务管理
Spring|Spring整合JDBC与事务管理1 事务1.1 事务(Transaction)的四个属性(ACID)1.2 事务并发问题1.3 事务的隔离级别2 Spring 中的事务操作2.1 事务的传播行为1 事务事务(Transaction): 事务是并发控制的单元,是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换为另一种状...原创 2019-04-27 20:24:55 · 214 阅读 · 0 评论 -
JavaSE|Java中的关键字及其他术语
JavaSE|Java中的关键字及其他术语final 关键字final 修饰类final 修饰方法final 修饰变量overload(方法重载)Java抽象类与接口final 关键字在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。final 修饰类当用final修饰一个类时,表明这个类不能被继承。...原创 2019-04-17 15:42:05 · 188 阅读 · 0 评论 -
JavaSE|Java Collections API
笔记内容来自《数据结构与算法分析 Java语言描述》第三版JavaSE|Java Collections APICollection 接口在类库中,Java 语言包括一些普通的数据结构的实现。这一部分叫做 Collections API。Collections API 位于 java.util 包中。Collection 接口集合的概念在 Collection 接口中得到抽象,它存储一组类...原创 2019-04-17 22:24:44 · 208 阅读 · 0 评论 -
MyBatis|JDBC编程中的问题、MyBatis介绍与第一个程序
MyBatis|JDBC编程中的问题、MyBatis介绍与第一个程序JDBC编程中的问题Mybatis框架Mybatis第一个程序学习内容来自:什么是MyBatis?业内资深大牛带你揭秘持久层框架JDBC编程中的问题以下的程序查询user表中username=sally的数据:public class JdbcTest { public static void main(String[]...原创 2019-04-16 10:27:25 · 193 阅读 · 0 评论 -
JavaWeb| Java连接MySQL的方法以及遇到的问题
环境JDK 1.8+Tomcat v8.5mysql-connector-java-8.0.14MySQL 8.0Eclipse 4.10.0连接MySQL的方法调试没问题的版本:public static Connection getConnection() { Connection connection = null; try { Class.forName("...原创 2019-04-10 16:37:16 · 1411 阅读 · 0 评论 -
JavaSE|网络编程
网络编程三要素:IP地址端口协议如果一个类没有构造方法:A:成员全部是静态的(Math,Arrays,Collections)B:单例设计模式(Runtime)C:类中有静态方法返回该类的对象(InetAddress)class Demo { private Demo() {} public static Demo getXxx() { return new Demo(...原创 2019-02-20 19:36:17 · 172 阅读 · 1 评论 -
JavaSE|设计模式
JavaSE|设计模式面向对象思想设计原则单一职责原则开闭原则里氏替换原则依赖注入原则接口分离原则迪米特原则设计模式概述设计模式的几个要素设计模式的分类简单工厂模式工厂方法模式单例模式Runtime面向对象思想设计原则下面的原则有助于提高程序的维护性、扩展性、复用性。单一职责原则就是开发人员经常说的“高内聚,低耦合”也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原...原创 2019-01-16 16:48:01 · 263 阅读 · 0 评论 -
JavaSE|线程安全
JavaSE|线程安全案例与线程安全两种方式实现模拟电影院售票增加售票延迟解决线程安全问题的基本思想同步:解决线程安全问题解决线程安全问题实现1同步的特点解决线程安全问题实现2线程安全的类JDK5中Lock锁的使用死锁生产者-消费者问题线程间通信等待唤醒机制线程的状态转换图案例与线程安全两种方式实现模拟电影院售票需求:某电影院目前正在上映贺岁大片,共有100张票,而它有3个售票窗口售票,请设...原创 2019-01-09 08:53:00 · 316 阅读 · 1 评论 -
JavaSE|线程组、线程池
JavaSE|线程组、线程池线程池Executors工厂类Callable接口匿名内部类的方式使用多线程定时器TimerTimerTask线程池程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互。而使用线程池可以很好的提高性能,尤其是当程序中要创建 大量生存期很短的线程时,更应该考虑使用线程池。线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待...原创 2019-01-14 08:44:57 · 159 阅读 · 0 评论 -
JavaSE|多线程
JavaSE|多线程多线程概述引入多线程概述什么是进程?多进程有什么意义?什么是线程?多线程有什么意义?什么是并发?举例Java程序运行原理小结Thread 类线程调度线程的两种调度模型如何设置和获取线程优先级线程控制线程休眠线程加入线程礼让后台线程中断线程线程的生命周期Runnable接口案例与线程安全两种方式实现模拟电影院售票增加售票延迟解决线程安全问题的基本思想同步解决线程安全问题实现1:同...原创 2019-01-07 11:33:06 · 688 阅读 · 0 评论 -
JavaSE|打印流、PrintWriter
JavaSE|打印流、PrintWriter打印流PrintWriter打印流字节流打印流:PrintStream字符打印流:PrintWriter打印流特点:只有写数据的,没有读取数据。只能操作目的地不能操作数据源。可以操作任意类型的数据。如果启动了自动刷新,能够自动刷新。该流是可以直接操作文本文件的。哪些流可以直接操作文本文件?FileInputStreamFile...原创 2018-12-25 16:33:45 · 212 阅读 · 0 评论 -
JavaSE|Properties
JavaSE|PropertiesProperties作为Map集合的使用Properties的特殊功能Properties和IO流的结合使用public class Propertiesextends Hashtable<Object,Object>Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个...原创 2018-12-28 16:02:34 · 187 阅读 · 0 评论 -
Spring|Spring AOP思想与配置
相关概念AOP面向切面编程思想:横向重复代码,纵向抽取。过滤器,拦截器,动态代理都能体现AOP。动态代理:通过动态代理可以体现AOP思想。动态代理是对某一个目标对象中的方法进行增强。Spring AOP 原理:Spring封装了动态代理(只能对接口)代码。我们就不需要手写动态代理代码。动态代理:被代理对象必须要实现接口,才能产生代理对象.如果没有接口将不能使用动态代理技术。...原创 2019-04-23 15:56:14 · 204 阅读 · 0 评论 -
Spring|Spring概述
Spring|Spring概述Spring 介绍Spring 概念Spring 思想:IoC 和 DIBeanFactory 接口 & ApplicationContext 接口Spring 配置详解Bean 元素Spring 创建对象的方式Spring 的分模块配置Spring 属性注入Spring 介绍Spring 是一个分层的JavaSE/EE full-stack (一站式)轻...原创 2019-04-19 15:50:53 · 2024 阅读 · 1 评论 -
剑指offer|栈的压入、弹出序列
【题目描述】输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)时间限制:1秒 空间限制:32768K 热度指数:319003本题知识点: 栈...原创 2019-04-24 15:32:02 · 153 阅读 · 0 评论 -
Java|Java中int的取值范围是多少
Java 中 int 的取值范围是:-2^31 ~ 2^31-1大致想一下,int 占 4字节,也就是 32 位,int 是有符号的,最高位为符号位。所以剩下31个位置。那么我们大胆猜测一下,最大正数应该就是2^31-1。举个栗子~如果是3bit的,其中最高位为符号位,看看它的范围是怎样?000001010011 最大为 3 = 2^(3-1)-1 和上面的式子是符合的1001...原创 2019-07-31 17:28:21 · 8052 阅读 · 1 评论 -
对Java平台的理解
从几个问题引入:“一次编写,到处运行”Java是解释执行的吗?自动垃圾收集Java语言跨平台的含义以及实现原理“Write once, run anywhere”是Java的一句被广为人知的宣传语。但很多人其实会把这句话记错,不知道怎么回事就记成了“一次编译,到处运行”。以为编译好后,放到不同平台上都能运行,当然不是这样!前几天学C++的舍友和我讨论两种语言的区别,提到Java跨平台...原创 2019-07-17 11:13:50 · 147 阅读 · 0 评论 -
Java|从Integer和int的区别认识包装类
Java|Integer和int概述极客时间的课程中,看到一篇讲Integer和int的区别,其中提到了一些没有想过的设计思路(比如Integer的值缓存),扩展了一些知识。文章不是很详细,编排有点混乱,并且很多地方只是提到了,但没有展开来说,导致我读来觉得好像很棒,但实际还是不知其所以然。所以本文根据该课程,整理课程中提到的关键概念,有这样几个疑问待本文解决:Integer和int的区别,...原创 2019-07-24 08:38:27 · 8215 阅读 · 2 评论 -
Java文件的命名,Java主类,Java中的public类
编译和运行 Java 程序HelloWorld.java 文件:// HelloWorld.javapublic class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); }}运行该命令后会生成一个 HelloWorld.class 文件:jav...原创 2019-07-16 11:37:07 · 15113 阅读 · 0 评论 -
JavaSE|System.out.println()输出原理
Mark:https://www.cnblogs.com/skywang12345/p/io_17.html原创 2019-07-11 18:51:55 · 961 阅读 · 0 评论 -
Java|HashMap源码解读
HashMap 和 Hashtable 区别:Hashtable 是一个线程安全的 Map 实现,HashMap 是线程不安全的实现,HashMap 比 Hashtable 性能高Hashtable 不允许使用 null 作为 key 和 value,如果试图把 null 值放进 Hashtable 中,将会引发 NullPointerException 异常;但 HashMap 可以使用 ...原创 2019-06-17 15:13:05 · 584 阅读 · 0 评论 -
Java|封装、继承、多态
什么是多态、方法重写与重载Java的继承与实现构造函数与默认构造函数类变量、成员变量和局部变量成员变量和方法作用域【参考文献】多态(类实现、接口实现):https://www.cnblogs.com/chenssy/p/3372798.html继承存在的问题(包含可以重写何种修饰的方法):《Effective Java》16继承(包含构造函数说明):https://www.cnbl...原创 2019-05-29 11:16:50 · 217 阅读 · 0 评论 -
Java|Java中是值传递还是引用传递
参考两篇博文,可以对这个问题有一个比较清晰的认识:https://www.cnblogs.com/SAM-CJM/p/9448905.htmlhttps://www.cnblogs.com/wchxj/p/8729503.html原创 2019-05-29 09:38:22 · 122 阅读 · 0 评论 -
Java|基本数据类型
7种基本数据类型:整型、浮点型、布尔型、字符型Java中有8种基本数据类型 分为三大类。字符型: char布尔型: boolean数值型: 1.整型: byte、short、int、long 2.浮点型: float、double在Java中,整形默认是 int 类型;浮点型默认是 double 类型,如果使用 float 类型,需要显示的加 " f "。String不是基本数据类...原创 2019-05-30 21:07:59 · 403 阅读 · 0 评论 -
Java初始化顺序(静态变量、静态初始化块、实例变量、实例初始化块、构造方法)
参考如下文章即可解决:https://www.cnblogs.com/z-sm/p/6973993.html原创 2019-05-30 10:06:29 · 361 阅读 · 0 评论 -
Servlet的生命周期
Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet 生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求,提供服务。Servlet的生命周期通过javax.servlet.Servlet接口中的 init()、service()和destroy()方法 来表示。Servlet 工作过程Web服务器在与客户端交互时Servlet的工作过...原创 2019-05-16 11:00:41 · 175 阅读 · 0 评论 -
JavaSE|hashCode()方法和equals()方法
每种数据类型都需要相应的散列函数,于是Java令所有数据类型都继承了一个能够返回一个32bit整数的hashCode()方法。默认的散列函数会返回一个和对象内存地址相关的值,但这只适用于很少的情况。Java 为很多常用的数据类型重写了hashCode()方法,包括String、Integer、Double、File和URL。原创 2019-07-10 22:44:15 · 186 阅读 · 0 评论 -
JavaSE|IO流:FileInputStream、FileOutputStream、BufferedInputStream、BufferedOutputStream
JavaSE|IO流IO流分类FileOutputStream构造方法成员方法常见问题加入异常处理FileInputStream构造方法成员方法字节缓冲流BufferedOutputStream构造方法BufferedInputStream构造方法IO流用来处理设备之间的数据传输。Java对数据的操作是通过流的方式。Java用于操作流的对象都在IO包中。IO流分类按照数据流向– 输入...原创 2018-12-11 19:17:50 · 261 阅读 · 0 评论 -
JavaSE|序列化流ObjectOutputStream、ObjectInputStream
JavaSE|序列化流概念操作例程例程改进:serialVersionUIDtransient关键字概念序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输。对象 – 流数据(ObjectOutputStream)反序列化流:把文本文件中的流对象数据或者网络中的流对象还原成对象。流数据 – 对象(ObjectInputStream)操作例程ObjectOutputStream类...原创 2018-12-27 16:35:05 · 173 阅读 · 0 评论 -
JavaSE|BigInteger
JavaSE|BigInteger构造方法成员方法不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。...原创 2018-10-24 09:49:29 · 163 阅读 · 0 评论 -
JavaSE|List、ListIterator
JavaSE|List、ListIteratorList成员方法ListIterator特有的成员方法ConcurrentModificationException问题产生产生原因解决方法List有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。与 set 不同,列表通...原创 2018-10-29 11:21:54 · 150 阅读 · 0 评论 -
JavaSE|集合类、Collection、Iterator
JavaSE|集合集合类概述数组和集合的区别集合类的特点Collection功能概述Iterator成员方法需要注意的问题原理理解集合类概述面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。数组和集合的区别长度区别:数组长度固定;集合长度可变。内容不同:数组存储的是同一种类型的元素;而集合可以存储不同类型的元素。元素的数据类型:数组可以存...原创 2018-10-26 10:48:09 · 200 阅读 · 0 评论 -
JavaSE|System类
JavaSE|System类成员方法System 类包含一些有用的类字段和方法。它不能被实例化。成员方法1. public static void gc()System.gc()可用于垃圾回收。当使用System.gc()回收某个对象所占用的内存之前,通过要求程序调用适当的方法来清理资源。在没有明确指定资源清理的情况下,Java提供了默认机制来清理该对象的资源,就是调用Object类的f...原创 2018-10-23 17:14:23 · 170 阅读 · 0 评论 -
JavaSE|Random类
JavaSE|Random类构造方法成员方法此类的实例用于生成伪随机数流。如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。构造方法1. public Random()没有给种子,用的是默认种子,是当前时间的毫秒值。2. public Random(long seed)给出指定的种子。给定种子后,每次得到的随机数是相同...原创 2018-10-23 15:46:21 · 183 阅读 · 0 评论 -
JavaSE|正则表达式
JavaSE|正则表达式规则应用判断分割替换获取符合一定规则的字符串。规则应用判断public boolean matches(String regex) String 类的方法告知此字符串是否匹配给定的正则表达式。分割public String[] split(String regex) String 类的方法根据给定正则表达式的匹配拆分此字符串。替换public St...原创 2018-10-22 16:17:08 · 258 阅读 · 0 评论 -
JavaSE|Arrays
JavaSE|Arrays成员方法针对数组进行操作的工具类。提供了排序,查找等功能。所有的成员方法都是静态的。成员方法1. public static String toString(int[] a)把数组转成字符串。2. public static void sort(int[] a)默认是快排。3. public static int binarySearch(int[] a...原创 2018-10-19 17:14:13 · 136 阅读 · 0 评论 -
JavaSE|基本类型包装类
JavaSE|基本类型包装类Integer构造方法int 类型和 String 类型的相互转换进制转换Integer构造方法1. public Integer(int value)2. public Integer(String s)这里的String必须包含数字才可以,否则会报错NumberFormatException。 String s = "100"; // Number...原创 2018-10-19 11:27:37 · 143 阅读 · 0 评论 -
JavaSE|StringBuffer
StringBuffer是线程安全的可变字符串。StringBuffer和String的区别:StringBuffer长度和内容可变,String不可变。如果使用StringBuffer做字符串拼接,不会浪费太多的资源。构造方法1. public StringBuffer() 最常用无参构造方法。其初始容量为 16 个字符。super(16);2. public Stri...原创 2018-10-15 10:15:24 · 199 阅读 · 0 评论 -
JavaSE|String的基本功能
JavaSE|String的基本功能构造方法构造方法概览判断功能判断功能概览获取功能转换功能新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowcha...原创 2018-10-11 10:36:57 · 238 阅读 · 0 评论