首页
学习
活动
专区
工具
TVP
发布

java系列博客

专栏作者
76
文章
96484
阅读量
30
订阅数
基于@Autowired和@PostConstruct实现策略模式
`package com.example.demo.designpattern.strategy;
小小明童鞋
2022-09-16
5060
线程状态切换代码小记
《java并发编程》那本书其实反复的看过很多遍了,也扒了很多多线程相关文章,但是不用的话很快就又忘记了 ,想到一个概念于是动手操作了一遍,以便加深认知。
小小明童鞋
2020-05-11
7380
读写excel(.xls or .xlsx)
https://github.com/xiaomingtongxie/springboot-study/blob/master/spring-study/src/main/java/demo/excel/ReadWriteExcelFile.java
小小明童鞋
2019-03-12
1.9K0
深入理解Java内存模型(七)——总结
处理器内存模型 顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。 根据对不同类型读/写操作组合的执行顺序的放松,可以把常见处理器的内存模型划分为下面几种类型: 放松程序中写-读操作的顺序,由此产生了total store ordering内存模型(简称为TSO)。 在前面1
小小明童鞋
2018-06-13
5590
深入理解Java内存模型(六)——final
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。 下面,我们通过一些示例性的代码来分别说明这两个规则: public class FinalExample { int i;
小小明童鞋
2018-06-13
7050
深入理解Java内存模型(五)——锁
锁的释放-获取建立的happens before 关系 锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码: class MonitorExample { int a = 0; public synchronized void writer() { //1 a++; //2 }
小小明童鞋
2018-06-13
8150
深入理解Java内存模型(四)——volatile
volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码: class VolatileFeaturesExample { //使用volatile声明64位的long型变量 volatile long vl = 0L; public void set(long l) {
小小明童鞋
2018-06-13
5490
深入理解Java内存模型(三)——顺序一致性
数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读没有通过同步来排序。 当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。 JMM对正确同步的多线程程序的内存一致性做了如下保证: 如果程序是正确同步的,程序的执行将具有顺序一致性(sequentially consistent)–即程序的执行
小小明童鞋
2018-06-13
1K0
ORACLE中JOB的使用
JOB:和JAVA中的job类似,都是定时任务。 首先,建表: -- Create table create table MYDAILYDK ( ID NUMBER(19) not null, NAME VARCHAR2(255), DKTIME DATE ) tablespace NG_DATA pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K next 1M minexte
小小明童鞋
2018-06-13
8160
深入理解Java内存模型(二)——重排序
数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之后,再读这个位置。 写后写 a = 1;a = 2; 写一个变量之后,再写这个变量。 读后写 a = b;b = 1; 读一个变量之后,再写这个变量。 上面三种情况,只要重排序两个操作的执行顺序,程序的执行结果将会被改变。 前面提到过,编译器和处理器可能会对操作做重排序。编译器和处理器在重排序时,会遵守数据依
小小明童鞋
2018-06-13
6400
JAVA 将xml文件转换成String
调用webservice方法的时候,参数有时经常是xml文件的字符串形式,简单的拼个字符串还好说,比如: StringBuilder str = new StringBuilder("<?xml ve
小小明童鞋
2018-06-13
8.4K1
java中 xml 问题 :1 字节的 UTF-8 序列的字节 1 无效。
根本原因是: The cause of this is a file that is not UTF-8 is being parsed as UTF-8. It is likely that the parser is encountering a byte value in the range FE-FF. These values are invalid in the UTF-8 encoding. 就是说字符编码在UTF-8中有特殊含义,或者是没用正确转换过来。 解决方案: 第一,可以直接在XML文
小小明童鞋
2018-06-13
1.9K0
java Arrays.aslist用法
java.util 类 Arrays java.lang.Object——java.util.Arrays public class Arrays extends Object 此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。 除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。一段有意思的代码如下: Java代码 public static void main(String[] args)
小小明童鞋
2018-06-13
6930
枚举类型浅析
回头再写备注 1、枚举类就是class并且是一个不可被继承的final class,其枚举值都是public static final的。 2、既然枚举类是class其就会有构造、方法、数据域。但是枚举类的构造器有很大不同:首先,构造器只是在构造枚举值时使用;其次,构造器是private的,不允许为public(这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 但枚举类的方法和数据域可以允许外部访问)。 3、所有枚举类都
小小明童鞋
2018-06-13
8040
ThredLocal的使用
ThredLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值得存储结构。 package cn.com.test; import java.util.concurrent.TimeUnit; public class Profiler { //第一次get()方法调用时会进行初始化(如果set方法没有调用),每个线程会调用一次 private static final ThreadLocal<Long> TIME_THREADLOCAL = new ThreadLocal
小小明童鞋
2018-06-13
6360
java面试要点
基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP 请求的 GET 与 POST 方式的区别 session 与 cookie 区别 session 分布式处理 JDBC 流程 MVC 设计思想 equals 与 == 的区别 集合 List 和 Set 区别 List 和 Map 区别 Arraylist 与 LinkedLis
小小明童鞋
2018-06-13
5900
javax.mail 实现邮件发送
首先,附上官网文档,请自行查阅: https://docs.oracle.com/javaee/7/api/javax/mail/package-summary.html 常用邮箱服务器以及对应端口: sina.com: POP3服务器地址:pop3.sina.com.cn(端口:110) SMTP服务器地址:smtp.sina.com.cn(端口:25) sinaVIP: POP3服务器:pop3.vip.sina.com (端口:110) SMTP服务器:smtp.vip.s
小小明童鞋
2018-06-13
3.8K0
Java ConcurrentModificationException异常原因和解决方法
Boy类: public class Boy { // private String ID; private String name; private String age; public Boy() { } public Boy(String ID, String name, String age) { this.ID = ID; this.name = name; this.age = a
小小明童鞋
2018-06-13
2.3K0
Java面试通关要点汇总集基础篇之参考答案
基础篇 基本功 面向对象的特征 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 多态 多态性(polymorphisn)是允许你将父
小小明童鞋
2018-06-13
6040
=Java面试通关要点汇总集之核心篇参考答案
核心篇 数据存储 MySQL 索引使用的注意事项 1.索引不会包含有NULL的列 只要列中包含有NULL值,都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此符合索引就是无效的。 2.使用短索引 对串列进行索引,如果可以就应该指定一个前缀长度。例如,如果有一个char(255)的列,如果在前10个或20个字符内,多数值是唯一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。 3.索引列排序 mysql查询只使用一个索
小小明童鞋
2018-06-13
7310
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档