主页

Shell编程学习之路

Shell编程是Linux系统的灵魂所在,Shell脚本的目的是在于批量执行Linux系统命令,节省一行一行打命令的麻烦,一个完善的Shell脚本与程序无异,与Windows的批处理不同的是Shell脚本在Linux系统中就是一个完整的可执行文件

阅读更多

Java 注解(Annotation)

注解是Java里可以给我们的代码带来很大便捷的一个知识点,自从接触了Spring Boot之后,就发现注解的强大足以代替传统的xml文件,可以把配置项更加精准地定位到具体的代码上,这种“全局配置”的爽快的感觉令人非常愉快

阅读更多

Windows自用软件推荐

前言 由于自己是个程序猿,对代码认真严谨的态度影响到了现实生活,所以即使是用一个软件,我也希望用上最好用的,所以我从很早就开始尝试各种各样奇奇怪怪的软件,毕竟计算机就是靠着各种不同的软件来帮我们实现各种愿望。 这么多年积累下来,就会发现有一些软件是已经离不开的了,这些软件带来的是计算机使用体验质的提升,经常有人问我XX软件好不好用、YY软件有没有替代的,于是就让我来写几篇推荐吧,解决这个旷日已久的问题。 这里都是一些我觉得值得推荐给别人使用的软件,更多的一些小工具小网站,可以在博客右上角的收藏界面看:收藏 必备软件 这里是我每次重装系统都要装上的软件,可以说真的就是必备了! QTTabBar

阅读更多

正则表达式(三) Java使用正则表达式

简介 Java从JDK1.4版本开始提供了非常强大的正则表达式功能,不仅支持了传统的正则表达式的使用,还额外支持了很多基于正则表达式的便捷操作,给我们的开发带来了非常大的帮助。 如果你还没有了解过正则表达式,可以从我之前的两篇文章中学习 正则表达式(一) 基本表达式 正则表达式(二) 其他表达式 使用 简单的验证 Pattern类提供了最简单的正则表达式使用方式,直接使用Pattern的静态方法matches(regex, text)即可直接验证一个字符串是否满足指定的正则表达式 // 显然这里的结果是true boolean result = Pattern.matches(".*love.*", "I love you!"); 如果你要问还有更简单的方法吗?答案是:...

阅读更多

正则表达式(二) 其他表达式

零宽度断言 在上一篇博客中介绍的\b、^和$都是用来匹配某一个位置的,而且这个位置满足了一定的条件,所以在这里,我们把满足的这一个条件成为断言或零宽度断言。 字符(断言) 说明 ^ 匹配行开始的位置 $ 匹配行结束的位置 \A 匹配必须出现在字符串的开头 \Z 匹配必须出现在字符串的结尾或字符串结尾处的换行符\n之前 \z 匹配必须出现在字符串的结尾 \G 匹配必须出现在...

阅读更多

正则表达式(一) 基本表达式

定义 正则表达式(Regular Expression) 用某种模式去匹配一类字符串的公式,主要用来描述字符串匹配的工具。 匹配 文本或字符存在不止一个部分满足给定的正则表达式,这是每一个这样的部分都被称为一个匹配。 匹配分为以下三种类型: 形容词性的匹配 即一个字符串匹配一个正则表达式 名词性的匹配 即在文本或字符串里匹配正则表达式 名词性的匹配 即字符串中满足给定的正则表达式的一部分 元字符 元字符(Metacharacter)是一类非常特殊的字符,它能够匹配一个位置或字符集合中的一个字符,元字符可以分为两种类型 匹配位置的元字符 匹配字符的元字符 元字符只能匹配一个字符位置,也就是一个匹配的单位是一个字符,而不是一个字符串 匹配位置的元字符 ...

阅读更多

Oracle数据库常用操作

前言 数据库的基本操作说少不少,往往学习数据库操作的时候会因为没有一个比较完善的练习数据库(包含主外键,一对多,多对多等)而起步困难,正值学期末Oracle数据库课准备考试,老师下发了一套练习题,其中恰好包含了一个比较完整的练习数据库以及各种操作题目,因此特地记录下来 表结构 Student 学生信息表 sno sname sex birthday class 108 曾华 男 09/01/1977 95033 105 匡明 男 10/02/197...

阅读更多

《深入理解Java虚拟机》第一章

概述 Java不仅是一门变成语言,还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用语软件开发和跨平台部署的支持环境,并广泛用于嵌入式系统、移动终端、企业服务器、大型机等多种场合,所以我们现在说Java,绝对不仅仅是在说一种变成语言,这个整个体系也是我们学习Java变成的动机所在。 Java优点 实现跨平台 提供相对安全的内存管理和访问机制 实现了热点代码检测和运行时编译和优化 提供了完善的应用接口还有无数商业机构和开源社区的第三方库 Java技术体系 Java技术体系包括以下部分 Java程序设计语言 各种硬件平台上的Java虚拟机 Class文件格式 Java API类库 来自商业机构和开源社区的第三方Java类...

阅读更多

《深入理解Java虚拟机》读书笔记

前言 2017年9月校招季,广州金山WPS二面,面试官对我说:你写了这么久的Java连Java是什么都不知道,盲点太多,你都快瞎了 想想面试官说得在理,吃了太多原理的亏,遂拿起了这本《深入理解Java虚拟机 JVM高级特性与最佳实践》,我也不知道我能不能看完,但是总归是一个开始,然后慢慢一个字一个字地爬,总归能爬到终点的吧,我试着这么鼓励我自己 目录 第一部分 走进Java 第1章 走近Java 1.1 概述 1.2 Java技术体系 1.3 Java发展史 1.4 Java虚拟机发展史 1.4.1 Sun ...

阅读更多

Kotlin(五) 类 接口

概述 在Kotlin里面大概最难以转换思维的也就是类写法和继承写法了,但这也是最重要的,在Kotlin里,对于类的定义产生了很多新的概念 类 简单定义一个类 // Primary constructor class A constructor(a: Int) { val b: Int = a var d: Int = 0 init { println(a) } // Secondary constructor constructor(a: Int, c: Int) : this(a) { d = c } } 这里简单定义了一个类,和Java一样,Kotlin的类也是使用class关键字进行声明...

阅读更多

Kotlin(四) 方法

概述 kotlin使用的是和Java非常类似的一种方法声明格式,包括参数及其类型,以及返回值类型,由于我们知道的kotlin的语法,类型是放在后面的,所以我们可以看到方法返回值的类型也被写在了后面,同样使用冒号分隔 fun max(a: Int, b: Int): Int { // 这是的if是一种和Java的三元操作符(a > b ? a : b)非常类似的一种if语句的写法,当然啦,kotlin没有三元操作符 return if (a > b) a else b } 基本方法声明 可以从概述中看出Kotlin方法声明的基本结构 fun 方法名(参数1: 参数1类型, 参数2: 参数2类型...): 返回值类型 { } 方法参数 默认参数 Kotli...

阅读更多

Kotlin(三) 字符串模板

这个功能实在是让我忍不住特地用一小篇文章特地说明一下 在Java时代最烦躁的一件工作就是字符串拼接了,要么忍受恶心的" "+" "+" "或者好几行的.append(),但是在kotlin里面我们可以简单地解决这个问题 fun main(args: Array<String>) { // 这是传统Java里的字符串拼接 val keyword = "java" val s1 = "I" + " hate " + keyword + " string\n" print(s1) // 这是kotlin的字符串模板方法,使用 $变量 的方式来把变量直接拼接进字符串中 val s2 = "I hate $keyword string\...

阅读更多