![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 68
Mary Ling
12年毕业至今,拥有5年的大型游戏公司的游戏后台开发经验,后转做web后台应用,对高并发多线程有着相当的经验,喜欢探索新的知识,研读源码框架。
展开
-
java 利用 ProcessBuilder 执行本地命令或者脚本
package ExecLocalCommand;import java.io.BufferedReader;import java.io.InputStreamReader;public class ProcessBuilderDemo { public void exeLocalCommand(String exportCmd) throws Exception{ ProcessBuilder builder; String charSet;原创 2022-03-29 09:54:33 · 3557 阅读 · 0 评论 -
java 利用ganymed-ssh2 远程执行linux shell 命令
早期的ganymed-ssh2包也可以实现远程调研linux shell 命令,但是这个包最新版本是2014年之后,就没有更新了,发现linux 操作系统安装 open-ssh 8.5及更高级版本,就一直提示连接失败.(可以使用jsch 最新版本更新到2018年,网上demo 很多 ,目前测试可以使用,后续可能出现ganymed-ssh2 写不支持,无法连接情况,sshd-core 是apache-mina 的项目一直在更新,推荐使用)package ganymed_ssh2;import ch.et原创 2022-03-29 09:39:46 · 2937 阅读 · 0 评论 -
java 利用sshd-core 远程执行Linux shell命令
前面一篇文章写道利用jsch 包远程执行linux 命令,但是该包已经很久没有更新, 后期linux 的open-ssh 升级,可能部分协议不支持,发现mina-sshd 里面有一个还在维护的远程执行 linux shell 命令的包代码demo 如下import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.EnumSet;import java.util.Set;import java.u原创 2022-03-28 23:03:44 · 8387 阅读 · 10 评论 -
Java 利用jsch实现远程linux shell 命令执行
java 可以利用jsch包实现远程执行linux shell 命令,分为交互命令和非交互式命令 代码如下:原创 2022-03-28 22:58:21 · 4243 阅读 · 2 评论 -
JAVA系列教程:多线程及锁
一.基本介绍1.为什么需要多线程锁呢?当多个线程同时去访问某一共享资源时,就会出现资源之间的竞争,如果没有锁机制的保证,就可能会导致数据的不一致性2.java内存模型二.锁机制实现1.使用synchronize关键字 a. 对静态方法加synchonize关键字 b. 静态代码块加synchronize关键字 c.普通方法加synchroni...原创 2020-02-26 23:18:06 · 1431 阅读 · 0 评论 -
JAVA系列教程:网络编程
基本概念在开始讲解java中如何实现网络编程之前,我们先了解一下几个基本概念IO–主要是指对文件,网络socket以及外设的操作,这里会涉及到linux的用户态和内核态(所有对磁盘文件,网络socket以及外设的操作都需要通过内核态进行访问),具体如下:A.用户向内核态发送访问磁盘文件,网络socket以及外设操作请求B.内核检查数据是否已经准备就绪,如果准备就绪则将数据从磁盘文件,网...原创 2020-03-08 16:12:14 · 284 阅读 · 0 评论 -
JAVA系列教程:线程
一.基本介绍线程是CPU调度的最小的单位。一个进程包含多个线程,而不同线程之间通过cpu进行调度。二.创建方式java中主要有3种创建线程的方式.1. 继承Thread类2.实现Runnable接口3.通过线程池三.线程生命周期java线程生命周期主要包括:新建,就绪,运行,阻塞,终止新建:当创建线程对象之后,start线程之前,该线程处...原创 2020-02-25 19:52:57 · 222 阅读 · 0 评论 -
JAVA系列教程:集合
一.分类集合父类是Collection, 子类主要包括List, Set和Map三类。二.List介绍List: 主要是用来存储一系列相同类型的数据,包括ArrayList, LinkedList, VectorArrayList: 线程不安全,内部通过数组实现,访问和查找速度快,指定位置增加和删除数据慢。LinkedList:线程不安全,内部通过链表实现,访问和查找速...原创 2020-02-25 17:49:38 · 439 阅读 · 0 评论 -
JAVA系列教程:配置环境变量
一.下载并安装JDK根据系统版本从Oracle官网下载相应版本的JDK并安装https://www.oracle.com/java/technologies/javase-jdk13-downloads.html二.配置环境变量1. windows环境变量配置 a) 打开系统属性面板 )b) 点击环境变量,添加JAVA_HOME, 变量值设置为JD...原创 2020-02-25 13:09:54 · 200 阅读 · 0 评论 -
JAVA系列教程:NIO Buffer
Buffer定义ByteBuffer是从内存中申请一块指定大小的空间,用来对输入输出IO的数据作临时的存储。为什么需要使用缓冲区呢a.减少与物理内存的输入输出次数b.缓存区一旦分配可重复使用,减少内存的申请与销毁。Java Buffer继承关系在Java NIO中,缓冲区的作用主要是临时存储数据,可以理解为是I/O操作中数据的中转站。缓存区主要为通道(Channel)服务,写入数据到通...原创 2020-03-08 20:12:07 · 138 阅读 · 0 评论 -
JAVA系列教程:Object Monitor与Synchronized关键字
java Object Monitor机制每个java对象都是一个monitor object,通过该monitor object, 可以实现线程之间的阻塞和唤醒具体转换过程:当线程需要获取Object Monitor的锁时,进入Entry Set如果线程获取锁成功,则进入The Owner状态,每个Object的Ower同一时刻只能有一个线程进入如果The Owner调用...原创 2020-03-10 09:30:16 · 1207 阅读 · 0 评论 -
Java系列教程:文件IO操作
1.什么是文件IO操作呢?文件的IO操作将磁盘文件中的数据读取到内存中或者将内存中的数据写回磁盘文件的操作。如下图所示从磁盘文件读取到内存就是InputStream流,从内存将数据写回到磁盘文件就是OutputStream流2.常用IO流已经他们的关系...原创 2020-03-10 22:26:25 · 655 阅读 · 0 评论 -
JAVA系列教程:注解
什么是注解我们知道类是对于某一特征的事物进行定义,这些事物具有相同的属性,相同的行为。那注解可以理解为对于类的一个横向扩展,然后在类进行编译时对注解信息进行解析或丢弃,运行时可以根据注解信息进行横向操控.如下图所示,假设我有这样一个需求,A,B,C是三个不同的类,我需要在应用程序启动时分别调用类A method1(), 类B method2(),类C的method3()方法。如果不使用注解的话...原创 2020-03-11 23:44:13 · 126 阅读 · 1 评论 -
JAVA类加载过程
基本介绍Java中用ClassLoader来表示类加载器,用于将.class文件加载到JVM内存中。每个Class对象都保存定义该类的类加载器的索引(可以通过Class#getClassLoader() 获取到关联的类加载器), 由于数组类不是由类加载器完成加载的,而是由JVM直接创建的,对于数组类调用getClassLoader()返回的是数组元素的类加载器,如Object[] arr获取类加...原创 2020-03-12 21:47:53 · 87 阅读 · 0 评论 -
JAVA系列教程
搭建JDK环境类加载过程集合文件IO线程基本介绍注解多线程和锁Object Monitor与Synchronized关键字网络编程NIO Buffer原创 2022-03-24 22:40:30 · 598 阅读 · 0 评论 -
用JAVA实现LDAP目录服务器的访问
下面我们以获取所有person objectclass对象为例进行代码编写。通过JNDI访问LDAP目录服务器public List<String> getAllPersonNames() { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVID原创 2020-10-10 14:02:00 · 607 阅读 · 0 评论 -
Java JNDI使用详解
JNDI基本介绍JNDI(Java Naming and Directory Interface–Java命名和目录接口)是Java中为命名和目录服务提供接口的API,通过名字可知道,JNDI主要由两部分组成:Naming(命名)和Directory(目录),其中Naming是指将对象通过唯一标识符绑定到一个上下文Context,同时可通过唯一标识符查找获得对象,而Directory主要指将某一对象的属性绑定到Directory的上下文DirContext中,同时可通过名字获取对象的属性同时操作属性。J原创 2020-10-09 11:03:32 · 4563 阅读 · 2 评论 -
JDBC基本介绍以及使用
为什么需要jdbc假设我们有一个用户信息系统,其中用户信息存储在数据库中,而我们的java应用程序需要操纵数据库的数据,那应用程序就需要与数据库管理系统建立链接,JDBC结构图原创 2020-09-30 14:37:23 · 313 阅读 · 1 评论 -
jdk8函数式编程使用实例
Java函数式编程是从jdk1.8开始引入的,主要是为了提高编程效率。函数式接口函数式接口(Functional Interface)是指有且仅有一个抽象方法,但可以有多个非抽象方法的接口。函数式接口类通常都会在类上添加@FunctionalInterface注解来表示如JDK类库中的Consumer接口, 有且只有一个抽象方法accept(),同时还有一个非抽象方法。所以Consumer接口类就属于函数式接口。实例化函数式接口函数式接口编程的实例化方式主要有三种:lambda表达式,方法引用和原创 2020-09-28 18:19:42 · 488 阅读 · 0 评论 -
java线程几种阻塞方法对比
Java线程生命周期Java中常用的几种阻塞方法通过上图中的线程生命周期图可知,常用的几种阻塞方法主要有: Thread.sleep(), LockSupport.park(), Object.wait阻塞方法对比在这里插入图片描述Object.wait()相关方法描述Object.wait()阻塞当前线程,同时释放锁,并等待另一个线程调用Object.not...原创 2020-09-27 09:40:29 · 3242 阅读 · 0 评论 -
linux如何查看cpu数量
1./proc/cpuinfo2.lscpu原创 2020-04-17 16:19:35 · 4277 阅读 · 0 评论 -
java如何优雅的关闭应用程序
文章转载自:2Simple的java如何优雅的关闭应用程序 目录理解停止Java进程的本质应该如何正确地停止Java进程如何注册关闭钩子使用关闭钩子的注意事项信号量机制总结理解停止Java进程的本质我们知道,Java程序的运行需要一个运行时环境,即:JVM,启动Java进程即启动了一个JVM。因此,所谓停止Java进程,本质上就是关闭JVM。那么,哪些情况会...转载 2020-05-08 11:41:10 · 3946 阅读 · 0 评论 -
Java NIO与IO的区别
基本区别IONIOStream OrientedBuffer OrientedBlocking IONIO Blocking IOSelectorStream Oriented vs Buffer OrientedStream OrientedBuffered Oriented面向流表示你可以每次读取一个字节或者读取多个字节到by...原创 2020-04-24 22:56:49 · 168 阅读 · 0 评论 -
java内存管理与参数设置
Java运行时数据区域区域描述程序计数器内存中一块小的内存空间,用于存放当前线程所执行的字节码指令地址虚拟机栈描述Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。一个方法对应一个栈帧。本地方法栈和虚拟机栈很类似,不同的是本地方法栈为Native方法服务J...原创 2020-04-19 22:35:42 · 323 阅读 · 0 评论 -
java问题定位汇总
~~持续更新java应用CPU占用100%1.根据top命令找到占用100%的进程2.根据pid找到对应的java程序ps aux | grep pid3.查找线程列表中耗时最多的线程(tid)ps -mp pid -o THREAD,tid,time4.将线程id转换成十六进制printf “%x\n” tid5.打印线程的堆栈信息jstack pid |grep ti...原创 2020-04-16 19:32:21 · 361 阅读 · 0 评论 -
JVM 字节码指令手册 - 查看 Java 字节码
JVM 字节码指令手册 - 查看 Java 字节码...转载 2020-03-10 12:44:21 · 170 阅读 · 0 评论