
javaSE
菩提小猿
用代码成就世界!
展开
-
深入理解 Java 中的注解
1. Java 中的注解1.1 注解概念首先看看官方对注解的描述:An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Annotations have no direct effect on the operation of the code they anno转载 2020-12-05 16:18:37 · 437 阅读 · 0 评论 -
mysql 中的日期类型
1. 日期类型MySql 中关于日期的类型有:date、datetime、timestamp日期赋值时,允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,‘98-12-31 11:30:45’、‘98.12.31 11+30+45’、'98/12/31 113045’和’98@12@31 113045’是等价的,对于不合法的将会转换为:0000-00-00 00:00:001.1 date 格式此类型的字段,存储数据格式为:YYYY-MM-DD(mysql会把后面的时间舍转载 2020-12-02 20:05:41 · 403 阅读 · 0 评论 -
Java 中的事件监听机制
Java 中的事件监听机制的参与者有3种角色:事件源 Source:发生事件的源头事件对象 Event:将发生的事件抽象为一个对象。用于事件监听器的相应的方法之中作为参数事件监听器 Listener:监听某(些)事件举例场景一:使用 Java 语言实现一个事件监听:当事件源状态改变时,会触发相应的事件,而这个事件会被监听器监听。监听到此事件后,进行相应的处理。自定义事件对象 MyEventpublic class MyEvent { // 事件名 private St原创 2020-11-30 20:49:51 · 637 阅读 · 0 评论 -
深入理解 JDBC
1. JDBC1.1 什么是 JDBC?JDBC 是什么?来看看文档说明:The Java Database Connectivity (JDBC) API provides universal data access from the Java programming language. Using the JDBC API, you can access virtually any data source, from relational databases to spreadsheets an原创 2020-11-28 16:41:15 · 400 阅读 · 0 评论 -
Java 中的 SPI 机制
Java 中的 SPI 机制SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件(服务接口),自动加载文件里所定义的类(服务接口的具体实现类)。当外部程序装配这个模块的时候,就能通过该jar包META-INF/services/里的配置文件找到具体的实现类名,并装载实例化,完成模块的注入。这样就能很好的找到服务接口的实现类,而不需要再代码里制定jdk提供服务实现查找的一个工具类:j转载 2020-11-28 12:58:16 · 317 阅读 · 0 评论 -
线程池的简单介绍
1. 线程池1.1 ThreadPoolExecutor1.1.1 构造方法在ThreadPoolExecutor类中提供了四个构造方法:略构造器中各个参数的含义:corePoolSize:核心线程的大小。默认情况下,在创建了线程池后,线程池中并没有任何线程,而是等待有任务到来后才创建线程去执行任务。除非调用了 prestartAllCoreThreads()、prestartCoreThread() 方法----在没有任务到来之前,就创建 corePoolSize 个线程或一个线程。转载 2020-11-24 22:06:36 · 329 阅读 · 0 评论 -
BIO & NIO 的基本使用
文章目录1. BIO & NIO1.1 阻塞&非阻塞、同步&异步1.2 BIO1.2.1 BIO 简介1.2.2 BIO 案例1.3 NIO1.3.1 NIO 简介1.3.2 NIO 中的新概念1.3.2.1 通道 Channel1.3.2.2 缓冲区 Buffer1.3.2.3 选择器 Selector1.3.3 NIO 案例背景:至于为什么有这篇博客的产生呢?因为最近在学习 Tomcat,而 Tomcat 中又涉及到了 BIO、NIO、AIO、APR,这四种 IO。所以,我就原创 2020-11-22 23:25:27 · 438 阅读 · 0 评论 -
使用“反射”将 Java 中一种对象类型转换为另外一种类型
将一种对象类型转换为另外一种类型的常用场景场景如下:一般后端是使用 MVC 三层架构进行分层。实体类 (User) 用于接收数据库中的数据;表现层 (UserVo) 将数据传给前端。这中间免不了要将实体类转换为表现层中的对象。即:将 User 类转换为 UserVo。代码如下:实体类 User:public class User { private String name; private Integer age; private String address; get.原创 2020-11-06 22:19:53 · 3144 阅读 · 6 评论 -
网络编程中的 TCP、UDP 了解一下
1. 网络编程1.1 网络编程基础1.1.1 目的直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯1.1.2 问题如何准确地定位网络上一台或多台主机:定位主机上的特定的应用(IP + 端口)找到主机后,如何可靠、高效地进行数据传输(网络通信协议)1.2 IPIP:唯一的标识 Internet 上的计算机IP 地址分类方式1:IPV4:4个字节组成。以“点分十进制”表示IPV6:16个字节组成。写成 8 个无符号整数,每个整数用四个十六进制位表示,数之间用冒号(:)表示原创 2020-10-25 22:20:12 · 318 阅读 · 0 评论 -
ASCII?Unicode?GBK?还不清楚???
1. ASCIIASCII:主要用于显示现代英语和其它西欧语言标准 ASCII 码(基础 ASCII 码):使用 7 为二进制位(剩下一位为 0)来表示所有的大小写字母、数字0~9、标点符号以及美式的特殊控制字符其中:0~31、127(共33个)是控制字符或通信专用字符(其余为可显字符)控制字符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等 通信专用字符:SHO(文头)、EOT(文尾)、ACK(确认)等 ASCII 码值为8、9、10、13原创 2020-10-24 23:38:38 · 413 阅读 · 0 评论 -
使用 IO 流复制目录
场景:要将 D 盘上的某个文件夹通过 IO 流复制到 E 盘下的某个文件夹中。实现:在一个 文件工具类中,通过 IO 流技术,运用递归算法,实现了一个简单的磁盘上文件夹的复制代码:public class FileUtil { /** * 复制目录 * * @param srcFile 源文件 * @param destFile 目标文件 */ public static void copyDir(File s原创 2020-10-24 21:25:24 · 325 阅读 · 2 评论 -
Java 中的 IO 流的基本使用
1. IO 流简介何为 IO 流?在计算机中,内存和磁盘需要进行数据传输(内存从磁盘中读入数据,进行处理,然后写入磁盘中),而数据传输需要通道。所以,这里的 “IO 流”就是数据传输的通道。内存和磁盘交互的图。所以,IO 流的作用:通过 IO 流,可以完成对磁盘文件的读和写2. IO 流的分类按流的方向分(以内存为参照物):输入流(往内存中去)、输出流(从内存中出来)按数据的读取方式:字节流、字符流字节流和字符流的区别?字节流:按照字节方式读取,一次读一个字节,可以读取任意类原创 2020-10-24 19:54:14 · 425 阅读 · 0 评论 -
详解 File 类
1. 为什么会有 File 类File ?什么是 File?中文的意思就是“文件”。在 Windows 操作系统中,数据是以文件的形式进行存储的。如:文本(.txt)、图片(.jpg、.png)、视频(avi)等。这些文件都被操作系统中的文件系统给管理着。那么问题来了,在 Java 语言中为什么会存在 File 类呢?大家都知道 Java 语言是一个面向对象的语言,遵循着“万事万物皆为对象”的法则。所以,Java 要想操作文件,就要把文件抽象成一个类------File 类。Java 中有哪些场景需原创 2020-10-20 00:43:21 · 1984 阅读 · 0 评论 -
使用 Maven 命令将 jar 包添加到本地仓库去
在 IDEA 中,想在 Maven 项目中添加一个依赖,一直下载不下来。所以,就直接将 jar 包下载下来,然后通过 Maven 命令添加到本地仓库去。如:<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.26</version></dependency>打开原创 2020-08-10 13:35:40 · 737 阅读 · 0 评论 -
String类中的intern()方法
1.前言 其实,促使我写这篇博客的原因说起来就挺可笑的。疫情在家,无所事事,就和室友对于专业方面的知识互相吹牛皮。然后,室友出了好几道题考我。也许结果早就在他的意料之中吧。其中,最让我不解的是这道题:String s1 = new String("a") + new String("bc");s1.intern();String s2 = "abc";System.out.println(s1 == s2原创 2020-06-06 16:10:17 · 4177 阅读 · 5 评论 -
手把手地带你走进Lambda表达式之门
章节目录1. 前言2. 认识Lambda2.1 Lambda简介2.2 Lambda语法2.3 Lambda表达式实例2.4 自定义一个Lambda表达式2.5 Lambda表达式对接口的要求2.5.1 函数式接口2.5.2 注解@FunctionalInterface2.5.3 举个例子3. 使用Lambda3.1 将Lambda作为方法的参数,传进方法中3.2 Lambda表达式替换匿名内部类3.2.1传统方法创建线程3.2.1.1 使用外部类创建线程3.2.1.2 使用匿名内部类创建线程3.2.2La原创 2020-06-02 21:27:43 · 817 阅读 · 0 评论 -
Java中的内部类了解一下
文章目录1. 什么是内部类?2. 为什么要使用内部类?3. 如何使用内部类?3.1 成员内部类3.1.1 什么是成员内部类?3.2 局部(方法)内部类1. 什么是内部类? Java 类中不仅可以定义变量和方法,还可以定义类,在类内部定义的类就被称为内部类。根据定义的方式不同,可以将内部类分为四种:成员内部类局部(方法)内部类静态内部类匿名内部类2. 为什么要使用内部类? &原创 2020-05-28 17:08:29 · 577 阅读 · 0 评论 -
JDBC的简要回顾
1.前言 记得刚开始接触JDBC这项技术时,我花了好长的时间才通过Java代码成功连接了mysql数据库。觉得很神奇,可以使用java语言对mysql数据库完成增删改查,那时候可把自己乐坏了。后来的学习过程中,都是通过ORM框架完成的,所以,JDBC基本忘得差不多了。现在,自己想深入的了解数据库连接池,所以,先回忆回忆JDBC吧。2.JDBC2.1 什么JDBC? &nbs原创 2020-05-15 21:38:05 · 272 阅读 · 0 评论 -
Java中的关键字volatile
1. volatile变量1.1 volatile变量简介 Java语言提供了一种稍弱地同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的。因此,不会将该变量上的操作与其他内存操作一起重排序。vola...转载 2020-04-30 21:03:34 · 222 阅读 · 0 评论 -
Java中的自动拆装箱
1. 基本数据类型1.1 什么是基本数据类型? 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型。它们是我们编程中使用最频繁的类型。1.2 为什么要使用基本数据类型? 在Java语...原创 2020-04-30 12:00:22 · 357 阅读 · 0 评论 -
Java中的值传递
1. 值传递与引用传递 当我们调用一个有参函数的时候,会把实际参数传递给形式参数。但是,在程序语言中,这个传递过程中传递的两种情况,即值传递和引用传递。值传递 值传递(pass by value)是指在调用...转载 2020-04-29 22:55:19 · 752 阅读 · 0 评论 -
关于List中的坑(下)
List的前两个坑:https://blog.youkuaiyun.com/Lucky_Boy_Luck/article/details/105715419接下来是第三个坑:1.3 不可变集合 为了防止 List 集合被误操作,我们可以使用 Collections.unmodifiableList() 生成一个...转载 2020-04-28 20:34:07 · 278 阅读 · 0 评论 -
关于List中的坑(上)
以下为List 常见坑:1.数组转换为List通过Arrays.asList(T… a)将数组转换为List。如:1.1不支持添加/删除元素public class ArrayListTest { public static void main(String[] args) { String[] seasons = {"spring", "summer", "au...转载 2020-04-24 17:01:21 · 511 阅读 · 0 评论 -
Java中的fail-fast机制的坑
1.走进fail-fast机制1.1 什么是fail-fast机制?简单来说:是在做系统设计的时候先考虑异常情况,一旦发生异常,直接停止并上报。1.2 为什么要使用fail-fast机制?可以预先识别出一些错误情况,一方面可以避免执行复杂的其他代码;另外一方面,这种异常情况被识别之后也可以针对性的做一些单独处理。1.3 如何使用fail-fast机制?举个简单小例子:public i...转载 2020-04-24 12:36:10 · 423 阅读 · 0 评论 -
synchronized锁住的是代码还是对象
1.synchronized作用在Java中,synchronized关键字是用来控制线程同步的。在多线程的环境下,控制synchronized代码段不被多个线程同时执行。2.synchronized用法synchronized既可以加在一段代码上,也可以加在方法上。3.对象锁和全局锁区别对象锁:synchronized(this)以及非static的synchronized方法。锁的...转载 2020-02-26 20:48:56 · 1566 阅读 · 0 评论 -
TreeMap基本使用
1.TreeMap简单介绍 TreeMap是一个有序的key-value集合,是非线程安全的,基于红黑树(Red-Black tree)实现。其映射根据键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。当自定义比较器时,需要自定义类实现java....原创 2020-02-24 21:48:11 · 2001 阅读 · 0 评论 -
浅谈hashCode()和equals()
java.lang.Object类中有两个比较重要的方法:public native int hashCode();public boolean equals(Object obj) { return (this == obj);}1.hasCode()方法详解理解hash code之前,先理解hash表1.1hash表hash表:根据关键码值(Key value)而直接...原创 2020-02-24 19:00:39 · 233 阅读 · 0 评论 -
Java环境配置及入门案例HelloWorld
1.Java 开发环境配置1.1window系统安装java1.1.1安装JDK1.8首先我们需要下载java开发工具包JDK,从Oracle官网下载即可jdk下载地址在下载页面中你需要选择接受许可,并根据自己的系统选择对应的版本,本文以 Window 64位系统为例:下载后JDK的安装根据提示进行,还有安装JDK的时候也会安装JRE,一并安装就可以了。安装JDK,安装过程中可以...原创 2019-08-26 15:39:32 · 349 阅读 · 0 评论