置顶文章

在初学 JVM 后遇到的第一个内存溢出问题,解决过程绕了不少弯子所以总结以下几点异常排查过程,以便之后在遇到异常抛出时可以快速定位到问题点。 # 问题描述 在使用 javacv 包中对象 FFmpegFrameGrabber 处理视频时,发现本机正常处理,但部署在服务环境中偶尔会抛出异常: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Physical memory usage is...

精选分类

文章列表

# 现象 在使用 SecureCRT 远程 SSH2 第一次连接服务器(端口:22)时,发现没有正常弹出输入密码的提示框,反而自动断开了连接。现象如图: # 问题定位 查看 SecureCRT 连接服务器过程的 traceLog(文件 -> 跟踪选项)如下: traceLog SecureCRT - Version 5.1.0 (build 263) [本地]:SSH2Core version 4.1.0.254 [本地]:Connecting to ip地址:22 ... [本地]:Changing state from STATE_NOT_CONNECTED to...

工作中需要每天通过远程工具(向日葵等)连接远程电脑启动虚拟机操作(远程连接 windows--> 启动 VMware 程序 --> 启动 VMware 中 Linux 虚拟机 --> 启动 tomcat 服务)。因此通过查阅资料将这项工作实现了启动 - 工作 - 关闭的自动化操作。现记录下实现思路,以便后续维护。 自动化功能拆分 早上 8:50 启动 VMware 虚拟机(Linux 虚拟机同步启动,默认进入 root 账户) 早上 9:00 启动 tomcat 服务进行开始工作 早上 10:00 关闭 tomcat 服务 早上 10:30 关闭...

# 功能要求 每天定时 8 点访问所需前端页面(以百度为例),待页面加载完成后对当前页面截图(指定大小)。 # 安装 phantomJs(有多种方式,本文通过直接下载工具包 ftp 上传到目标路径安装) 下载 phantomjs 工具包(本文使用 linux 版) 官方下载地址:https://phantomjs.org/download.html # 将工具包上传并解压(本文解压到 /usr/local 路径下) 使用命令解压工具包 [root@VM_0_14_centos local]# tar -xbvf...

在使用 Navicat15 连接 sqlserver 数据库时遇到报错(未发现数据源名称并且未指定默认驱动): 解决方法:手动安装 navicat 提供的 sqlserver 数据源驱动(msodbcsql_64.msi(部分 navicat 版本该驱动名称为 sqlncli_x64.msi)),在 navicat 安装目录下 安装后测试连接成功: 参考: https://www.cnblogs.com/maycpou/p/11395057.html

发现每次代码编译有部分文件都会发生变动,因此想要在 git 上传代码时忽略掉这些文件。尝试修改.gitignore 文件未生效。 原因: .gitignore 只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore 是无效的。 正确做法: 在每个 clone 下来的仓库中手动设置不要检查特定文件的更改情况。 忽略指定文件 git update-index --assume-unchanged FILE在 FILE 处输入要忽略的文件。 还原操作 git update-index --no-assume-unchanged...

# Java NIO 基本介绍 Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入 / 输出的新特性,被统称为 NIO (即 New IO),是同步非阻塞的 NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.io 包中的很多类进行改写。 NIO 有三大核心部分:Channel (通道),Buffer (缓冲区), Selector (选择器) NIO 是...

# I/O 模型 # I/O 模型基本说明 I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能 Java 共支持 3 种网络编程模型 / IO 模式:BIO、NIO、AIO Java BIO : 同步并阻塞 (传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销 Java NIO : 同步非阻塞,服务器实现模式为一个线程处理多个请求 (连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求就进行处理 Java...

# 在使用 AES 加密时,代码如下: Cipher c = Cipher.getInstance(cmp); c.init(Cipher.ENCRYPT_MODE, sk, IV); byte[] result = c.doFinal(msg);# 抛出异常: java.security.InvalidKeyException: Illegal key size# 异常原因: 为了数据代码在传输过程中的安全,很多时候我们都会将要传输的数据进行加密,然后等对方拿到后再解密使用。我们在使用 AES 加解密的时候,在遇到 128 位密钥加解密的时候,没有进行什么特殊处理;然而,在使用 256...

# Netty 的介绍 Netty 是由 JBOSS 提供的一个 Java 开源框架,现为 Github 上的独立项目。 Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络 IO 程序。 Netty 主要针对在 TCP 协议下,面向 Clients 端的高并发应用,或者 Peer-to-Peer 场景下的大量数据持续传输的应用。 Netty 本质是一个 NIO 框架,适用于服务器通讯相关的多种应用场景 # Netty 的应用场景 # 互联网行业 互联网行业:在分布式系统中,各个节点之间需要远程服务调用,高性能的 RPC 框架必不可少,Netty...

# java 中的线程安全 线程安全 当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果。-- Brian Goetz java中各操作共享的数据 不可变 一定是线程安全的。 绝对线程安全 能够完全满足 Brian Goetz 对于线程安全的定义。 相对线程安全 对对象单次的操作是线程安全的,对于特定顺序的连续调用可能需要额外的同步手段。 java 中大部分声称线程安全的类(Vector、HashTable...