自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

锋子

自嗨空间

  • 博客(47)
  • 收藏
  • 关注

原创 判断Java整形是否溢出

题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。解法:设ans为每次计算的结果,pop为每次取出的最低位的数,反转算式为:ans = ans * 10 + pop,如果不考虑溢出问题,那这个算式就可以直接用,但是这里要考虑溢出问题,如果在反转过程中发生溢出,就返回0。解决溢出最直接的想法就是每次计算ans时,判断ans * 10 + pop > I...

2019-08-08 12:03:27 840

转载 Python中函数形参的*和**的区别

区别(*)表示将参数作为元组来处理;(**)表示将参数作为字典来处理。例子def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------'if __name__ == '__main__'...

2019-08-07 12:00:12 1810

原创 Shell中$*和$@的区别

区别"$“和”$@" : "$“将所有的参数当作一个字段;”$@"以空格来划分参数$*和$@ : 两个没有区别,以空格来划分参数例子

2019-08-07 11:22:36 2051

原创 Linux 添加、删除 ip

添加IPip addr add 192.168.88.223/24 dev eth0ip addr add 192.168.88.223/24 dev eth0 label eth0:1删除ipip addr del 192.168.88.223/24 dev eth0ip addr del 192.168.88.223/24 dev eth0 label eth0:1...

2019-08-07 10:47:34 469

转载 Linux之/etc/fstab文件

/etc/fstab是用来存放文件系统的静态信息的文件,当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。示例字段定义<file systems> - 要挂载的分区或存储设备<dir> - <file systems>的挂载位置<type> - 要挂载设备或是分区的文件系统类型,支持许...

2019-08-07 10:30:05 317

原创 .py和.pyc的基本常识

什么是pyc文件?pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。为什么需要pyc文件?.pyc文件是由.py文件经过编译后生成的字节码文件,其加载速度相对于之前的.py文件有所提高,而且还可以...

2019-07-26 11:33:17 1753

原创 Shell中的命令替换及变量扩展

命令替换命令替换就是在SHELL 内嵌套多条命令,一次性执行得到结果。一层Shell嵌套echo `whoami`whoamiecho $(whoami)rootecho "hello,`whoami`"hello,rootecho "hello,$(whoami)"hello,root...

2019-07-22 23:42:36 583

原创 基于CentOS7搭建MySQL5.5.x主从模式

准备安装MySQL前必须删除原来的安装,具体自行谷歌,需要检查/etc/my.cnf和/etc/init.d/mysqld是否存在,存在的话需要手动删除,自行到Mysql官网下载MySQL包,这里使用的版本是5.5.x的版本因为我的Centos7是选择最小安装,所以有些库是不存在的,这里需要安装libaio,可使用yum search libaio查看安装信息,使用yum install l...

2019-07-21 22:22:46 188

原创 ER,IR和DR

ER外部路由节点,部署在有对外网络的接入板上,负责对外部请求进行安全隔离,并根据请求URL寻址到适当的应用板。https单向验证。IR内部路由节点,负责统一接入应用板的各类请求,并发布到响应的应用进程,应用之间的访问,也必须通过内部路由节点。需要https双向验证。DR数据库路由节点,根据应用请求的数据访问主备数据库节点。路由流程...

2019-07-16 08:10:27 5591

转载 Python中os.walk的使用

作用python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。载入要使用os.walk,首先要载入该函数可以使用以下两种方法import osfrom os import walk使用os.walk的函数声明为 : walk(top, topdown=True, onerror=None, followlinks=False)...

2019-07-14 16:52:46 2178

转载 Python的hasattr() getattr() setattr()函数使用方法详解

hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来>>> class test():... name="xiaohua"... def run(self):... return "Hel...

2019-07-14 16:39:43 148

原创 Linux中使用haveged对/dev/random补熵

SecureRandom在随机数安全一文中提过安全随机数的概念 , 这里不具体描述 , 就是指强伪随机数甚至真随机数 . 在Java中除了弱伪随机数生成器java.util.Random之外 , 也提供了java.security.SecureRandom这种强伪随机数生成器 . 使用这种方式时 , Java会读取系统默认的随机源 . Java中有两种方法可以改变随机源的来源 :JVM的启动...

2019-07-14 16:22:28 17070

原创 随机数安全

随机数分类真随机数 : 通过物理实验得出,比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等伪随机数 : 通过一定算法和种子得出。软件实现的是伪随机数,其中难以预测的随机数称为强伪随机数,易于预测的随机数称为弱伪随机数随机数特性随机性 : 不存在统计学偏差,是完全杂乱的数列不可预测性 : 不能从过去的数列推测出下一个出现的数不可重现性 : 除非将数列本身保存下来,否则不能重现...

2019-07-13 17:45:52 4643

转载 Linux使用ssh远程登陆

什么是SSH?简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推...

2019-07-13 17:10:24 496

转载 linux 下 `dirname $0`

在命令行状态下单纯执行 $ cd dirname $0 是毫无意义的。因为他返回当前路径的"."。这个命令写在脚本文件里才有作用,它返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。在/home/admin/test/下新建test.sh内容如下:cd `dirname $0`echo `pwd`然后返回到/home/admin/执行sh t...

2019-07-13 16:41:49 176

原创 Shell中的EOF用法

在脚本中可以使用echo往一个文件中自动输入N行内容,当然前提是少数的几行内容.如果需要追加很多行,用echo追加的方式就显得比较无力了,这时候就可以考虑借助EOF和cat来进行多行内容的追加.输入重定向要理解EOF的用法,先理解一下输入重定向,输入重定向就是改变输入的方向.不再使用键盘作为命令输入的来源,而是使用文件来作为命令的输入,Bash支持的输入重定向夫符号如下:commanad &...

2019-07-13 16:25:55 6724

原创 Shell中 1>/dev/null 2>&1的含义

拆分语句:> : 重定向输出,例如echo “123” > /filename就表示将123写入文件中1 : 表示stdout标准输出,系统默认值是1,所以"> /dev/null"等同于"1>/dev/null"2 : 表示stderr标准错误& : 表示等效于的意思,2>&1字面表示2重定向到1,2等同于1,即标准错误会和标准输出写入同个文...

2019-07-13 12:27:27 2703

转载 Java Web中涉及的编解码

一次http请求涉及的编解码URL的编解码URL的组成部分以Tomcat服务器为例子,其中Port,ContextPath在Server.xml中配置<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/><Context d...

2019-04-25 22:37:00 111

原创 Java中的编码

提及Java中的编码问题,许多博客都会提及Java中的getBytes()方法,不过笔者在研究这个问题的时候,会陷入一个疑惑中,getBytes()方法的作用是将字符串按照指定的charset编码,但是这些字符串本身其实已经以某种编码方式存在内存中了,那这个方法的指定参数不会导致乱码吗,假如原本是以unicode码存在内存,getBytes("BGK")用BGK对原来的编码进行再编码?要较好的理解...

2019-04-25 22:33:00 208

原创 重捡Unicode和UTF-8

为何进行编码众所周知计算机的世界只有0和1,所以为了让计算机能表示我们人类能够理解的符号,我们必须做一些转换工作,所以编码就是指将人类认识的符号转化为0和1的过程。如何进行编码这个问题笔者认为是真正理解编码的关键,网上查到这个问题的时候,就会出现很多常见的编码格式,如ASCII、ISO-8859-1、GBK、UTF-8和UTF-16等等,但这些是实现编码的具体方式,它们都有自己...

2019-04-25 22:30:00 118

原创 从类的初始化顺序理解单例模式

单例模式有多种多样的实现方式,根据剑指offer中的观点,有三种实现方式比较推荐,第一种是双重检验锁的方式,第二种是使用静态代码块,让类在初始化的时候就完成单例变量的赋值,第三种是最推荐的,使用静态内部类。这里只分析静态内部类实现方式中的类初始化过程,以便更好地理解单例模式,静态内部类的基本概念请自行谷歌。普通静态内部类的初始化顺序外部类和内部类定义:public class ...

2019-03-07 22:36:00 203

原创 覆盖Objects.equals方法

O bject类中的equals方法源码 public boolean equals(Object obj) { return (this == obj); }Object的equals方法判断的仅仅是两个对象是否具有相同的引用,但是对于大多数类来说,这样的比较方式完全没有意义,比如实际中两个学生的学号相等,我们就认为是同个人了。重写equals方法1...

2019-03-07 22:34:00 189

原创 接口中解决默认方法冲突

如果先在一个接口中将一个方法定义为默认方法,然后又在超类或者另一个接口中定义了同样的方法,那么同时实现这两个接口的类或者既继承了超类又实现了接口的类就会发生冲突。但Java提供相应的规则:1.超类优先。如果超类提供一个具体方法,同名而且有相同参数类型的默认方法会被忽略。2.接口冲突。如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型相同的方法,就必须解决冲突。例子1...

2019-03-07 22:32:00 327

原创 继承中的访问域问题

1.定义两个实体,经理和雇员public class Employee { private String name; //姓名 private double salary; //薪水 public Employee(){ } public Employ(String name,double salary){ this.n...

2019-03-07 22:31:00 82

原创 继承中的多态问题

相关概念1.一个对象变量可以指示多种实际类型的现象被称为多态。在继承中的多态体现在:如果一个Employee类有三个子类,Manager,Secretary和Programmer,那么一个Employee类型的对象引用可以指示Manager或Secretary或Programmer,根据实际情况而定。2.有一个用来判断是否应该设计为继承关系的简单规则,就是“is-a”规则,它表明子类的每个对...

2019-03-07 22:30:00 287

原创 Java中方法的调用过程

1.编译器查看对象的声明对象和方法名。如x.f(args)语句,假设隐式参数x声明为C类对象。这时编译器一一列举所有C类中名为f的方法和其超类中访问属性为public且名为f的方法。2.编译器查看调用方法时提供的参数类型。这个过程称为重载解析。3.如果是private、static、final方法或者构造器,那么编译器就可以准确知道地知道调用哪个方法,这种调用方式称为静态绑定。如果不是这几...

2019-03-07 22:29:00 538 1

原创 用户身份与文件权限

一.用户身份与能力概述设计Linux系统的初衷之一就是为了满足多个用户同时工作的需求,因此Linux系统必须具备很好的安全性。 Linux的管理员是root用户,其实这种说法不是很准确,root用户之所以为系统的管理员,是因为它的UID(User Identification)为0,而不是它叫做root。 Linux系统中有三种类型的用户: 管理员用户:UID为0的用户 系统用户...

2019-03-07 22:09:00 134

原创 在IoC容器中的注册

概念载入和解析Bean定义信息而得到BeanDefinition后,还需要将IoC容器注册这些BeanDefinition,才能让IoC容器使用。这个过程是通过调用BeanDefinitionRegistry接口的实现来完成的。通过分析,我们可以看到,在IoC容器内部将BeanDefinition注入到BeanFactory的一个HashMap中去,IoC容器就是通过这个HashMap来持有B...

2019-01-26 00:47:00 146

原创 BeanDefinition的载入和解析

概念第二个过程是BeanDefinition的载入。这个载入过程是把用户定义好的Bean表示成IoC容器内部的数据结构,而这个容器内部的数据结构就是BeanDefinition。具体来说,这个BeanDefinition实际上就是POJO对象在IoC容器中的抽象,通过这个BeanDefinition定义的数据结构,使IoC容器能够方便地对POJO对象也就是Bean进行管理。IoC容器对Bean...

2019-01-26 00:43:00 297

原创 BeanDefinition的定位

概念BeanDefinition的存在形式有很多种,例如文件系统中的Bean定义文件或类路径中的Bean定义文件。这就意味需要不同的寻址方式在找到这些Bean定义文件。Resource定位指的是BeanDefinition的资源定位,就是找到这些Bean定义文件,并将这些信息抽象为统一的Resource对象,方便后面载入。分析定位过程以编程的方式使用DefaultListableBea...

2019-01-26 00:38:00 116

原创 ApplicationContext功能与设计原理

1.ApplicationContext功能在Spring中,系统已经为用户提供了许多已经定义好的容器实现,而不需要开发人员事必躬亲。相比那些简单拓展BeanFactory的基本IoC容器,开发人员常用的ApplicationContext除T能够提供前面介绍的容器的基本功能外,还为用户提供了附加服务,可以让客户更方便地使用。所以说,ApplicationContext是一个高级形态意义的I...

2019-01-26 00:31:00 517

原创 BeanFactory功能与设计原理

1.BeanFactory功能具体的方法的功能通过方法名可知,其中,isTypeMatch()是用来查询指定了名字的Bean的Class类型是否是特定的Class类型。这个Class类型可以由用户来指定。 另外需要注意的是有个常量FACTORY_BEAN_PREFIX = "&";这个主要是用于FactoryBean上。FactoryBean和BeanFactory的区别需要知...

2019-01-26 00:19:00 304

原创 Ioc容器设计概况

IoC主要设计接口图:1.详细设计可以查看BeanFactory的继承关系。2.简要分析:第一条接口设计的主线是从接口BeanFactory到HierarchicalBeanFactory再到ConfigurableBeanFactory**,是一条主要的BeanFactory设计路径。在这条接口设计路径中,BeanFactory接口定义了基本的IoC容器的规范。在这个接口定义中.包括了...

2019-01-26 00:16:00 76

原创 管道符、重定向与环境变量

管道符、重定向与环境变量管道符用于把前一个命令原本要输出到屏幕的数据当作后一个命令的标准输出。例如使用翻页的形式查看/etc目录中的文件列表及其属性输入输出的重定向管道符作用的对象是命令和命令,重定向作用的对象是命令和文件。使用输入重定向能够把文件导入到命令中,而输出重定向则是能够把原本要输出到屏幕的数据信息写入到指定文件中,输入用的比较少,输出用的比较多。通配符(个人认为类...

2018-07-03 22:56:00 89

原创 Vim编辑器和Shell命令脚本

Vim编辑器和Shell命令脚本Vim文本编辑器Vim文本编辑器内设有三种模式:命令模式、末行模式和编辑模式。命令模式:控制光标移动,可对文本进行删除、复制、粘贴和查找等工作。输入模式:正常的文本录入。末行模式:保存、退出与设置编辑环境。命令模式和末行模式下的一些快捷键:末行模式下的命令:Shell命令脚本Shell终端解释器类似人与计算机硬件的翻译官,作为用户与Linu...

2018-07-03 22:53:00 206

原创 Linux常见命令

Linux常见命令执行查看帮助命令man命令,用于查看帮助文档,即可用来查看某个命令的可选参数和用法,格式:man 命令常用系统工作命令echo用于在终端显示字符串或输出提取变量后的值如何提取变量:通过env可以得到系统中环境变量的值,使用echo+$变量名可以打印其值,其中$是提取变量的符号,echo是打印date用于打印时间日期,常用于备份文件时备注时间,下列的参数...

2018-07-03 22:46:00 80

原创 EL(Expression Language)

EL(Expression Language)简介默认对象运算符变量EL还提供自动转变类型的功能,eg:${param.count+20},会将传来的count自动转换为数值。

2018-07-03 22:27:00 74

原创 Listener

Listener简介Listenr是Servlet的监听器,它可以监听客户端的请求、服务器端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量,当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1.接口ServletContext监听接口ServletSession监...

2018-07-03 22:21:00 85

原创 Filter

Filter概念过滤器本身并不生成请求和响应对象,它只提供过滤作用;其能在Servlet被调用之前检查Request对象,修改Request Header和Request内容;在Servlet被调用之后检查Response对象,修改Response Header和Response内容。Servlet过滤器负责过滤的Web组件可以是Servlet、JSP或HEML文件。过滤过程接...

2018-07-03 22:20:00 74

原创 Session

Session跟踪客户状态Web服务器跟踪客户状态通常有4种方法:建立含有跟踪数据的隐藏字段;重写包含额外参数的URL;使用持续的Cookie;使用Servlet API中的Session(会话)机制。概念Session用于跟踪客户的状态。Session指的是在一段时间内,单个客户与Web服务器的一连串相关的交互工程。在一个Session中,客户可能会多次请求访问同一个网页,也有可...

2018-07-03 22:17:00 76

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除