
Java Core
小姜dot
执着的小愤青
展开
-
Java学习笔记: 线程的创建
多线程概念:多线程能够将任务放在不同的线程当中同时处理,可以有效的提高系统的资源使用,尤其针对多处理器对应用的提升更大。实现理念:把要进行处理的业务逻辑单元放在一个类当中,对于主线程而言就是创建这些类的对象,然后把每个对象作为一个线程进行启动,当中也涉及到多个线程的通信。实现方法:一 通过实现Runnable接口1 构建运行线程的类,该类需要实现Runnable接口,因此需原创 2014-09-25 10:17:55 · 828 阅读 · 0 评论 -
【Java】静态绑定和动态绑定
在Java的方法调用上,存在静态绑定和动态绑定两种类型,下面对这两种类型的区别进行了举例:Java中的静态绑定是发生在编译阶段,然而动态绑定是在程序运行时发生的;private, final, static等修饰的方法和变量都是采用静态绑定的;静态绑定使用Java Class类型来获取信息的,然而动态绑定是使用当前运行时的对象来获取相关信息的;重载的方法使用静态绑定,而重写的方法使用动态绑定原创 2018-03-30 11:19:15 · 269 阅读 · 0 评论 -
【Java正则表达式系列】1. Java正则介绍
正则表达式对我们程序员来说应该经常听到,通常用来过滤日志,查找以及替换内容。这个系列总结Java正则的学习内容。1. 何为正则表达式?正则表达式(Regular expression)是用来表述一类某一类字符串集合的特性,通常被用来搜索、编辑和操作文本和数据。正则表达式有着自己的语法格式,这样得要求我们在学习正则表达式的时候,得了解其书写语法,它这里面的语法和具体的语言...原创 2018-04-24 10:16:25 · 596 阅读 · 0 评论 -
【Java正则表达式系列】2. 简单的正则匹配示例
本小节的目的是熟悉java平台提供的Pattern、Matcher和PatternSyntaxException类的使用。import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;import java.util.regex.PatternSyntaxExcepti...原创 2018-04-24 10:33:23 · 729 阅读 · 0 评论 -
【Java正则表达式系列】3. 字符串
字符串在我们平常编程当中应该是被使用最多的类之一了,那么它跟正则表达式有什么关系呢?1. 字符串匹配java平台正则表表达式api提供的最基础的匹配就是这种字符串的匹配,这个概念很简单说明,比如: 正则表达式是:”foo”,带匹配的字符串是”foo”, 这种情况是匹配应该是成功的。我们可以通过实例来了解(测试代码请参见第二节):从上面可以了解到匹配成功,请注意我们的输入字符...原创 2018-04-24 11:23:39 · 438 阅读 · 0 评论 -
【Java正则表达式系列】4. Character Classes
1. Character Classes为何物?如果你阅读Pattern类的定义,你将会看到里面有一个表格总结了Pattern类所支持的正则表达式构造类型,下面是从中截取的。 Construct Description 翻译 [abc] a, b, or c (simple class) a, b或c (简单类型) [^abc] Any cha...原创 2018-04-24 12:49:38 · 1185 阅读 · 0 评论 -
【Java正则表达式系列】5. 预定义Character classes
上面一节中我们了解了character classes的相关内容,这一节,我们了解一下一些Pattern里面预定义的character classes. 这些预定义的character classes主要用来简化和方便我们使用character classes, 把一些通用的提取处理。1. 预定义Character Classes Construct Descriptio...原创 2018-04-24 13:47:07 · 459 阅读 · 0 评论 -
【Java正则表达式系列】6. Quantifiers(量词)
在前面的几个章节中,我们简单的学习了一些基本的正则表达式的一些元素,今天,我们来讨论一下Java 正则表达式重要的一个概念–Quantifiers(量词).啥为量词?从字面意义上可能和数量有关,其实Java 正则里面的量词被用来需要指定某种模式需要重复出现一定次数的情况,比如:我们想匹配100个连续的a, 当然了,你可以写100个a的正则表达式来达到同样的功能,但是,这种也太辛苦了,我们程序...原创 2018-04-26 11:45:31 · 1842 阅读 · 0 评论 -
【Java正则表达式系列】7 Capturing Groups(匹配组)
上一节中我们在学习Quantifier时候,也考察了和Capturing Groups结合的意义。本节主要对Capturing Groups进行描述一下。它的意义和用途很简单,它就是把一组字符串当做一个整体来看待,比如 (abc)我们就应该将字符串abc看做一个整体。输入匹配的字符串如果匹配Capturing Groups的正则内容,匹配引擎会将匹配部分的位置和信息记录在内存中,以便后续b...原创 2018-04-26 14:00:45 · 1476 阅读 · 0 评论 -
【Java正则表达式系列】8 Boundary Matcher(边界匹配)
我们之前的学习中,匹配是发生在输入字符串任意位置的,但是某些场景下,我们需要某些匹配仅仅对输入字符串的开始或者结尾处进行匹配,这就引入Boundary Matcher概念。通过约定特殊的语法格式来满足特定意义,在Java API中定义了如下的Boundray Construct. Boundary Construct Description ^ The begin...原创 2018-04-26 14:21:40 · 2075 阅读 · 2 评论 -
【Java基础】java major version
java class文件里面major version用来指定当前的class文件编译时所用的java版本,了解到这个,经常我们会遇见如下的报错:Unsupported major.minor version 52.0上面的提示信息说明当前运行的java版本不能支持,major version = 52代表的是java 8,当前运行环境的java版本可能的原因是版本过低,java版本是...原创 2018-08-02 10:37:34 · 3419 阅读 · 0 评论 -
【java】十六进制字符串转化为字节数组
public static byte[] hexStringToByteArray(String s) { int len = s.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (...原创 2018-08-17 11:42:20 · 7052 阅读 · 0 评论 -
【java】system property 和environment property
系统变量(system property)和环境变量(enviroment property)的区别对于java应用开发者而言应该要区分清楚:1. 概念说明enviroment property: 是系统级的环境变量,系统当中所有的进程都可以访问到,下面示例查看windows系统和linux系统的环境变量:centos7:win7:system property:是java应用程序自...原创 2018-09-18 13:39:20 · 7427 阅读 · 0 评论 -
【Java】Intellij IDEA 设置properties默认创建编码格式
在添加resourcebundle的时候发现创建的文件默认编码都是GBK,所以需要调整默认的格式,下面是IDEA中调整的菜单截图:原创 2018-09-25 10:15:39 · 4498 阅读 · 0 评论 -
NoSuchMethod异常信息解释
在应用运行时候,我们可能会遇到java.lang.NoSuchMethod异常,问题基本上就是jar包的依赖存在问题。通常异常日志信息会同下面的信息类似:Exception in thread "main" java.lang.NoSuchMethodError: scala.Product.$init$()V这里我们该如何理解 scala.Product.initinit()V呢?其实上面的格式是原创 2017-09-06 17:17:21 · 6230 阅读 · 0 评论 -
【java】BigDecimal使用注意
先看代码:import java.math.BigDecimal;public class BigDecimalDemo { public static void main(String[] args) { BigDecimal a = new BigDecimal(0.55); System.out.println(a); BigDecima原创 2017-07-03 15:08:04 · 516 阅读 · 0 评论 -
用synchonized实现多线程的消费者和生产者的模拟
consumer1 say: No food and I will wait consumer2 say: No food and I will wait producer1 say: I produce one and now counter is 1producer3 say: I produce one and now counter is 2producer2 say:原创 2014-09-25 16:31:37 · 821 阅读 · 0 评论 -
Java设计模式--Java设计模式介绍
设计模式是针对某一特定问题,被证明是一种行之有效的解决方法。例如,考虑一下情形:需要创建一个class, 这个class只需要实例化一次即可,这个实例对象可以被其他的类共享使用,这时就可以考虑单例模式 .设计模式代表一种思想,它并不是一种特定的实现。通过使用设计模式, 我们可以使编写出现的代码更加灵活,可重用和可维护性。Java语言本身在内部也遵循设计模式。对Java的核心部分, 可以大致的分为三大翻译 2015-09-02 23:13:16 · 1003 阅读 · 1 评论 -
【java基础】Stack Memory VS Heap Memory
这篇文章是自己总结JVM中Stack Memory与Heap Memory的区别,1 Stack Memory解释2 Heap Memory解释heap memory主要是用来存储java程序创建的对象,例如new Object();此时,JVM会在heap memory分配一定的空间用来存储创建的Object对象.JVM中的垃圾回收机制主要的工作就是释放heap memory中不被其他任何对象引用原创 2016-06-01 23:20:03 · 2422 阅读 · 0 评论 -
【java基础】String Pool
String Pool正如它的名字所说明的那样,是在heap memory中保存一个字符串池.使用String Pool主要的目的是用来节省存储空间,一般java程序中分布着大量的字符串变量.Java中String对象的内容是不能被修改的,因此,如果字符串的内容是一样,就没有必要再重新创建一个新字符串对象来表示,完全可以把已经存在的对象作为返回,这样可以有效剩下空间.这种方式需要在定义字符串的时候使原创 2016-06-01 23:57:02 · 1009 阅读 · 0 评论 -
10 Steps to Become an Outstanding Java Developer
Have strong foundation and understanding on OO Principles For a Java developer, having strong understanding on Object Oriented Programming is a must. Without having a strong foundation on OOPS, one ca转载 2016-08-18 11:39:16 · 738 阅读 · 0 评论 -
【Maven】maven 基本概念
项目使用在java开发的众多web应用中,maven作为一个项目构建管理工具被广泛的应用到项目中,在项目中应用maven可以减少我们日常开发过程中很重复的工作,例如编译、打包、执行测试用例以及部署这些比较基础而且日常开发中比较重复的工作. 自己总结Maven的使用方法的因为是,当我们接触一个项目的时候,通过阅读Maven对应的pom.xml文件可以对这个项目的运行框架有一个基础的理解,这样原创 2016-08-29 00:16:04 · 712 阅读 · 0 评论 -
Date、TimeStamp和Calendar的使用
Date在Java的日常开发中很重要原创 2016-08-18 10:51:39 · 1440 阅读 · 0 评论 -
【Java基础】List
在应用开发中,基本上都会有读取资源的情况,这些资源包括文件系统的文件、ClassPath中的某个配置文件或者是网络上的文件,我们之前可以使用java.net.URL这个类去完成这个任务,但是在开发基于Spring框架的应用的时候,可以使用Spring原生提供的Resources接口来实现.1. Resource接口Spring 的Resources是一个抽象的接口,它可以被实现成各种场景下的资源访问原创 2016-09-26 00:29:19 · 420 阅读 · 0 评论 -
【Spring学习笔记】文件上传
最近学了一下Spring MVC的相关知识,今天把自己学到的如何在Spring MVC中处理文件上传的方法记录一下:1. 配置如果你的Servlet Container版本是3.0及以上版本可以直接定义Spring提交的StandardServletMultipartResolver. @Bean public MultipartResolver multipartResolver()原创 2016-09-26 09:06:04 · 510 阅读 · 0 评论 -
【Java基础】JVM介绍
JVM(Java Virtual Machine)是一种抽象的机器,它是一个定义Java程序执行环境的标准.大家在学习Java语言的时候,都被告知Java程序具有平台无关的特性,其实是通过JVM把平台相关性的东西给屏蔽了,JVM是依赖具体的软硬件环境,JVM通过隐藏底层硬件和操作系统的差异,向上提供统一的接口,这样就实现了Java程序“一次编译,到处运行”的目的. JVM是什么?可以从一下几个方面原创 2016-09-27 21:45:55 · 563 阅读 · 0 评论 -
【java基础】Class.getName()输出结果的解释
在学习Java Reflection的时候,打算通过Class.getName()方法了解具体的Class名称,package com.jiangjian.study.java.advanced.reflection;public class Sample { public static void main(String[] args) { byte[] a = new by原创 2017-02-09 20:40:23 · 10066 阅读 · 0 评论 -
【Java基础】Java注解中成员支持的类型说明
Java注解是java提供的一个很好的工具,那么在自定义注解的时候,其内部成员可被允许的类型又有哪些呢?根据 JLS中章节9.6.1 的说明,Java中注解成员的类型必须是如下几类: 1. 基本数据类型(boolean, byte, char, short, int, long, float, double等); 2. String; 3. Class; 4. 枚举; 5. 其他的注解;原创 2017-02-24 20:17:39 · 6591 阅读 · 0 评论 -
mybatis generator xml配置模板
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-co原创 2017-05-09 09:34:27 · 4285 阅读 · 0 评论 -
【Java】ServiceLoader机制深入
ServiceLoader机制深入ServiceLoader是在 jdk1.6开始引入的,它主要的功能是用来完成对SPI的provider的加载.简单理解其功能就是,根据给定的接口,找到当前接口所有实现的类.现在给出一个这种机制的应用场景示例: jdbc的DriverManger,下面是一个代码片段import java.sql.Connection;import java.sql.Dr...原创 2018-09-30 11:29:44 · 2608 阅读 · 0 评论