使用AES算法的时候,会发现下面的代码在windows每次产生确定的结果,但Linux就不同,导致无法正确解密 public static String encrypt(String content, String password) { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, new SecureRandom(password.getBytes())); SecretKey s…
前言 在面试中,被问到了一个问题: Windows中的JDK和Linux中的JDK是否相同? 其实,以上这个问题是一个子问题.原本的问题是:如何理解Java的跨平台机制.由于原问题显得有些宽泛,因此延伸出一个子问题,在本篇博客中争取能够完整地回答.本文力求建立起自己知识体系中Java的基石,希望在阅读本文之后,同时可以很好地回答上述的跨平台机制这个基础问题. 一.JDK的架构 下面这张是从Oracle官方文档中找到的JDK架构图,非常细致的展现了JDK每个层级的架构和组件.以下将会挑选重点,谈谈…
我们调用的Java AIO底层也是要调用OS的AIO实现,而OS主要也就Windows和Linux这两大类,当然还有Solaris和mac这些小众的. 在 Windows 操作系统中,提供了一个叫做 I/O Completion Ports 的方案,通常简称为 IOCP,操作系统负责管理线程池,其性能非常优异,所以在 Windows 中 JDK 直接采用了 IOCP 的支持. 而在 Linux 中其实也是有AIO 的实现的,但是限制比较多,性能也一般,所以 JDK 采用了自建线程池的方式,也就是…
扇区是对硬盘而言,块是对文件系统而言. 簇”又称为“分配单元” ,文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件.扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理.每个簇可以包括2.4.8.16.32或64个扇区.显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性. 为了更好地管理磁盘空间和更高效地从硬盘读取数…
1. 命令1 && 命令2 命令1执行成功在执行命令2 2. 命令1 || 命令2 命令1执行失败后在执行命令2 我觉得这完全就是判断呀.…
今天某个服务的日志中出现了大量的异常: [WARN ] 2018-06-15 16:55:20,831 --New I/O server boss #1 ([id: 0x55007b59, /0.0.0.0:20880])-- [org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink] [DUBBO] Failed to accept a connection., dubbo version: 2.8.3.2, current…
说到Linux中的软硬链接,就必须谈一下Linux的文件系统的组成的重要部分iNode和block. 首先是iNode,先用一张图了解一下iNode在Linux文件系统中的地位: Linux中的文件的文件名.文件属性和文件的数据是分开存储的.在文件系统初始化的时候,硬盘就被分成两个区域iNode区(iNode table)和数据区(block).文件名存放在目录项(dentry)中,文件的属性存放在iNode中,而文件的内容,即文件的实际数据存放在block中.目录文件是特殊的文件,这是因为目录…
最近在给学生讲解数据库的主从配置,由于学生电脑里面装的虚拟机是linux的,但是本机的系统是windows的,所以需要用windows中的mysql与linux中的mysql进行主从配置.下面说一下主要步骤: 如果将windows中的当主机,那么配置如下(如果linux中的当主机,那么反过来配置就行): Windows中的主机配置: 1. 首先,找到windows中mysql的配置文件路径. 使用主机的root用户登录mysql,然后在命令行输入:select @@basedir;显示的结果即为…
问题:在Windows中写了一个shell脚本在Linux中死活不能运行,怎么也查不出错误,原来是格式问题. 原因:Windows/DOS系统的换行符是/r/n,Unix/Linux系统的换行符是/n,Windows中的文本在Linux中查看每行末尾会出现^M标记,表示无法识别的字符.^M字符是不可见字符,需要用cat -v 或  vi -b 才能显示. 解决:使用dos2unix命令进行格式转换,或者使用sed将^M删除(^是ctrl+v M是ctrl+M)…
一.Linux文件系统的层次结构 在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构,如图: 二.目录 1.目录的定义 目录相当于Windows中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录. 文件系统层次结构标准(FHS)定义了Linux操作系统中的主要目录及目录内容. 在FHS中,所有的文件和目录都出现在根目录"/"下,即使他们存储在不同的物理设备中. 2.linux中的目录详细介绍: /   根目录 /bin/   面向所有用…