Anonymous World

迷失仙境


  • 首页

  • 标签

  • 分类

  • 归档

Java正则表达式

发表于 2020-02-26 | 分类于 Java
字数统计: 1,271

正则表达式是一套标准,可用于任何语言

JDK内置正则表达式引擎:Java.uilt.regex

方法

String类里也提供了如下几个特殊的方法。

  • boolean matches(String regex):判断该字符串是否匹配指定的正则表达式。
  • String replaceAll(String regex, String replacement):将该字符串中所有匹配regex的子串替换成replacement
  • String replaceFirst(String regex, String replacement):将该字符串中第一个匹配regex的子串替换成replacement
  • String[] split(String regex):以regex作为分隔符,把该字符串分割成多个子串。

上面这些特殊的方法都依赖于Java提供的正则表达式支持,除此之外,Java还提供了Pattern和Matcher两个类专门用于提供正则表达式支持。

精确匹配

需匹配 正则表达式 Java中正则
a&c a\&c a\&c
a和c a\u548cc a\u548cc
  • 正则中特殊符号最好转义一下,而Java中\也需转义
  • 非ASCII字符用了\u####表示,也要转义,不过这里Markdown没有显示岀来
阅读全文 »

JVM数据分区

发表于 2020-02-19 | 分类于 Java
字数统计: 2,488

HotSpot虚拟机

HotSpot虚拟机是Oracle/OpenJDK中JVM的一种默认实现,其他实现还有BEA System公司的JRockit与IBM公司的IBM J9。

HotSpot虚拟机的热点代码探测能力可以通过执行计数器找出最具有编译价值的代码,然后通知即时编译器以方法为单位进行编译。如果一个方法被频繁调用,或方法中有效循环次数很多,将会分别触发标准即时编译和栈上替换编译(On-Stack Replacement,OSR)行为

HotSpot虚拟机中含有两个即时编译器,分别是编译耗时短但输出代码优化程度较低的客户端编译器(简称为C1)以及编译耗时长但输出代码优化质量也更高的服务端编译器(简称为C2)通常它们会在分层编译机制下与解释器互相配合来共同构成HotSpot虚拟机的执行子系统

自JDK 10起,HotSpot中又加入了一个全新的即时编译器:Graal编译器。Graal编译器是以C2编译器替代者的身份登场的。Graal能够做比C2更加复杂的优化,如“部分逃逸分析”(Partial Escape Analysis),也拥有比C2更容易使用激进预测性优化(Aggressive Speculative Optimization)的策略,支持自定义的预测性假设等。

然而需要预热才能达到最高性能等特点有悖于目前微服务架构的趋势。一种解决方案是提前编译,Substrate VM是在Graal VM 0.20版本里新出现的一个极小型的运行时环境,包括了独立的异常处理、同步调度、线程管理、内存管理(垃圾收集)和JNI访问等组件,目标是代替HotSpot用来支持提前编译后的程序执行。但要求目标程序是完全封闭的,即不能动态加载其他编译器不可知的代码和类库。

阅读全文 »

Docker中运行Neo4j

发表于 2020-02-17 | 分类于 database
字数统计: 1,030

查看最新的Neo4j镜像版本 此时最新为4.0

docker pull neo4j:4.0 拉取镜像4.0

报错Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 10.0.2.3:53: read udp 10.0.2.15:51774->10.0.2.3:53: i/o timeout

可能DNS解析有点问题,看了一下全都是美国弗吉尼亚的Amazon数据中心,应该是访问不到

去找阿里云镜像,然后被满页的广告蒙蔽了双眼,一个多小时之后,我买了一台云服务器 :D

我是谁?我在哪?我刚才不是在学Docker吗?后来,我就开始搭服务器了。。。

阅读全文 »

LC-链表专题(一)

发表于 2020-02-16 | 分类于 DataStructure
字数统计: 2,644

2 两数相加【中】

思路:先获取两个链表的长度,以较长的的作为遍历次数。新建一个链表存储结果,每次循环将对应的位的数相加,同时设置一个标志位记录本次加法是否进位。若有进位则下一次的加法要+1

阅读全文 »

Spring MVC

发表于 2020-02-15 | 分类于 Java
字数统计: 1,681

Spring MVC是Spring提供的一个轻量级Web框架,它实现了Web MVC设计模式。提供了一个前端控制器DispatcherServlet,使开发人员无须额外开发控制器对象。

在老版本的Spring中,配置文件内必须要配置处理器映射器、处理器适配器和视图解析器。但在Spring 4.0以后,如果不配置处理器映射器BeanNameUrlHandlerMapping、处理器适配器SimpleControllerHandlerAdapter和视图解析器InternalResourceViewResolver,就会使用Spring内部默认的配置来完成相应的工作

在web.xml中配置Spring MVC的前端控制器等信息
在src目录下创建Spring MVC的核心配置文件springmvc-config.xml,在该文件中配置组件扫描器和视图解析器

执行流程

(1)用户通过浏览器向服务器发送请求,请求会被Spring MVC的前端控制器DispatcherServlet所拦截。
(2)DispatcherServlet拦截到请求后,会调用HandlerMapping处理器映射器。
(3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有就生成)一并返回给DispatcherServlet。
(4)DispatcherServlet会通过返回信息选择合适的HandlerAdapter(处理器适配器)。
(5)HandlerAdapter会调用并执行Handler(处理器),这里的处理器就是程序中编写的Controller类,也被称为后端控制器。
(6)Controller执行完成后,会返回一个ModelAndView对象,该对象中包含视图名或包含模型与视图名。
(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet。
(8)DispatcherServlet会根据ModelAndView对象选择一个合适的ViewResolver(视图解析器)。
(9)ViewResolver解析后,会向DispatcherServlet中返回具体的View(视图)。
(10)DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。
(11)视图渲染结果会返回给客户端浏览器显示。

阅读全文 »

阿里云OSS+PicGo搭建博客图床

发表于 2020-02-13 | 分类于 Blog
字数统计: 652

博客自创建以来的就没有插入过图片,为了以后浏览的时候能更快明白之前写的东西,还是决定搭个图床。

之前看过在github以及七牛云上搭的,空间限制或需要域名备案而放弃,准备搭在阿里云OSS上。

在OSS中创建Bucket

买了一个40G一年的OSS存储包,因为说不定以后还要存别的东西,就没有选择按量付费了。流量就直接按量了,反正应该就我自己会看…

创建Bucket注意权限改为公共读,我选择的标准按量收费。

在PicGO中连接OSS

picgo 项目地址

在图床设置中填写OSS中相应信息

KeyId和KeySecret可以从阿里的控制台获取, 储存空间名就是Bucket的名称,存储区域在访问域名可以找到 我的是 oss-cn-hangzhou。

存储路径比如2020/02/12/的话,上传的图片会默认放在OSS的2020/02/12文件夹下。注意存储路径一定要以/结尾

将图片拖拽或复制后上传剪贴板,会自动重命名并返回一个链接地址,默认为markdown格式

阅读全文 »

Spring基础之IoC与AOP

发表于 2020-02-12 | 分类于 Java
字数统计: 3,168

Spring是一个以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming)为内核的框架。

IoC和DI

IoC是Spring的基础。IoC实现的是一种控制,简单地说,就是以前调用new构造方法来创建对象,现在变成了使用Spring来创建对象。DI(Dependency Inject,依赖注入)与IoC的含义相同,从两个角度描述同一个概念。简单地说,DI就是对象的属性,已经被注入好相关值,直接使用即可。

IoC是Inversion of Control的缩写,译为“控制反转”,还有的译为“控制反向”或者“控制倒置”。

在面向对象传统编程方式中,获取对象的方式通常是用new关键字主动创建一个对象。Spring中的IoC方式对象的生命周期由Spring框架提供的IoC容器来管理,直接从IoC容器中获取一个对象,控制权从应用程序交给了IoC容器。

IoC理论上是借助于“第三方”实现具有依赖关系对象之间的解耦,即把各个对象类封装之后,通过IoC容器来关联这些对象类。这样对象与对象之间就通过IoC容器进行联系,而对象与对象之间没有什么直接联系。

当对象A实例化和运行时,如果需要对象B,IoC容器就会主动创建一个对象B注入(依赖注入)到对象A所需要的地方。由此,对象A获得依赖对象B的过程,由主动行为变成被动行为,即把创建对象交给了IoC容器处理,控制权颠倒过来了,这就是所谓的控制反转

阅读全文 »

Deepin真好玩之我怎么又黑屏了??

发表于 2020-02-10 | 分类于 OS
字数统计: 1,075

开始使用华为的linux发行版了,2K屏真香!极简风格相当喜欢,UI也设计的不错,就是触摸板不太好滑。

尝试正确的姿势上网(暂时放弃)

先去客户中心按指南下载Qt5,并扫描好配置的二维码。然而还要进行系统配置之后才能使用

开始用全局配置,但是考虑到访问国内速度可能较慢,于是打算用动态配置。

法一 配置PAC :deepin系统安装shadowsocks-qt5并使用PAC全局代理) 配置之后反而国内的网站都访问不了,取消了也不能访问

据说还有个deepin系统的专门插件 https://github.com/lolimay/shadowsocks-deepin

但我懒得编译了

法二尝试使用Chrome插件 https://github.com/FelisCatus/SwitchyOmega/releases/

注意下载后要将后缀改成.tar 后解压,把里面的”_metadata”文件夹改名为”metadata” 然后拖入Chrome的扩展程序界面即可手动安装

等我装好插件,配置完成之后,连百度都打不开了…

没办法,遇事不决重启试试。然后更刺激的来了,我输入密码进入桌面,两秒之后,黑屏了!!!

先后经历之前的安装丢失,合屏待机之后无法唤醒等令人摸不着头脑的问题。

接下来,在各种recovery之间反复横跳…

阅读全文 »

云服务器ECS中配置Nginx和Docker

发表于 2020-02-07 | 分类于 Project
字数统计: 1,122

今天心血来潮买了一个阿里云ECS云服务器,然后想起来以前还买过一个域名一直没用上,就拿来玩玩。

绑定域名

在域名的控制台进行DNS解析,绑定好云服务器的公网IP

  • 记录类型:默认A
  • 主机记录:www ,就是给域名加一个前缀
  • 解析路线:默认
  • 记录值:云服务器的公网ip地址
  • TTL:默认

配置好后,ping 域名 检测一下,可以访问

接下来就可以部署一些自己的应用了


远程连接到服务器 ssh root@IP 输入密码,即可连接

首先对服务器进行升级 sudo apt-get update

阅读全文 »

冲鸭,向着S公司

发表于 2020-02-05 | 分类于 Intern
字数统计: 648

大概知识点

Java基础良好 —- 容器,GC, 多线程

熟悉Spring等主流Web框架 —- java web, cloud

掌握WEB后端开发技术: 协议、架构、存储、缓存、安全等

对ERP有一定的概念,javascript & abap

大数据—HANA相关,内存数据库

细节知识点

  • 设计模式—单例的各种实现,模式的JDK动态,及为什么要动态
  • 类加载器
  • 新生代和老年代 —-GC 标记算法
  • 数据库 —– 触发器和存储过程
  • 基于oracle的一种数据库 —- 该公司会用的
  • 索引、优化、如何处理非常多的数据
  • 优化sql,让模糊查询走索引:%匹配符不能在字符前面
  • redis
阅读全文 »
1…567…13
Liana_Wang

Liana_Wang

虚己以游世,乘物以游心

125 日志
22 分类
94 标签
GitHub E-Mail
友链
  • 瑞哥上班又开始划水看书了
© 2018 — 2020 Liana_Wang
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4