有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

javaftp工具类(Java封装FTP(S)/SFTP实现文件上传下载)

javaftp工具类(Java封装FTP(S)/SFTP实现文件上传下载)
很多时候我们会遇到从FTP上上传和下载文件,但是FTP分为了三种主要实现,分别是FTP,FTPS,SFTP。我们封装一个一套工具类来实现它的连接,上传下载的等功能。1、概念简介1.1、什么是FTP?FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系……继续阅读 »

2周前 (11-27) 12浏览

javanumber类型(java安全编码指南之:Number操作)

javanumber类型(java安全编码指南之:Number操作)
简介java中可以被称为Number的有byte,short,int,long,float,double和char,我们在使用这些Nubmer的过程中,需要注意些什么内容呢?一起来看看吧。Number的范围每种Number类型都有它的范围,我们看下java中Number类型的范围:考虑到我们最常用的int操作,虽然int的范围够大,但是如果我们在做一些int操作的时候还是可能超出int的范围。超出了int……继续阅读 »

2周前 (11-27) 12浏览

javasha1加密(Java 中的SHA-1算法)

javasha1加密(Java 中的SHA-1算法)
SHA-1或安全散列算法1是加密散列函数,它接受输入并产生160位(20字节)散列值。此哈希值称为消息摘要。此消息摘要通常呈现为长度为40位的十六进制数。它是美国联邦信息处理标准,由美国国家安全局设计。自2005年以来,SHA-1现在被认为是不安全的。到2017年,微软,谷歌,苹果和Mozilla等主要技术巨头已经停止接受SHA-1 SSL证书要在Java中计算加密散列值,请在java.security包下使用M……继续阅读 »

2周前 (11-27) 11浏览

线程池的核心参数(Java线程池原理及核心参数)

线程池的核心参数(Java线程池原理及核心参数)
首先看下SDK关于线程池ThreadPoolExecutor类的构造函数源码:图1 ThreadPoolExecutor类构造函数部分源码一、由源码可以看出线程池有几个核心的参数概念:1、核心线程数:corePoolSize【allowCoreThreadTimeOut为false时,线程池中要一直保留的活跃线程数,不受空闲时间限制】;2、最大线程数:maximumPoolSize【线程池中允许的最大的……继续阅读 »

2周前 (11-27) 16浏览

javastring转byte数组(javastring转byte数组原理)

javastring转byte数组(javastring转byte数组原理)
我们在程序中会遇到把byte数组转为string 类型显示出来,比如我们在数据库中把图片存储为byte数组类型数据,当我们查询出来数据时,需要转换为Basestring64的格式来显示图片,这个时候,我们就用到了这种转换。byte[] byteArray = System.Text.Encoding.Default.GetBytes( str );反过来也是一样,把byte[]转成string:strin……继续阅读 »

2周前 (11-27) 17浏览

java 线程状态(Java线程的6种状态详解)

java 线程状态(Java线程的6种状态详解)
上次进行了JAVA程序运行的原理分析,通过【JVM指令代码表】可以一步步,了解栈本地变量表和操作数栈,在栈线程中程序是如何运行的,这次咱们一起梳理下JAVA的线程状态。(一)线程几种状态线程的状态在java中有明确的定义,在java.lang.Thread.State中有6种。① New线程被创建,未执行和运行的时候② Runnable不代表线程在跑,两种:被cpu执行的线程,随时可以被cpu执……继续阅读 »

2周前 (11-27) 16浏览

java执行shell脚本(java 执行shell命令及日志收集避坑指南)

java执行shell脚本(java 执行shell命令及日志收集避坑指南)
有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用。涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的。废话不多说,java如何执行shell命令?自然是调用java语言类库提供的接口API了。1. java执行shell的api执行shell命令,可以说系统级的调用,编程语言自然必定会提供相应api操作了。在java中,有两个api供调用:Runti……继续阅读 »

2周前 (11-26) 20浏览

java dateformat(线程不安全的 SimpleDateFormat)

java dateformat(线程不安全的 SimpleDateFormat)
SimpleDateFormat 是 Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是它是线程不安全的。多线程公用一个 SimpleDateFormat实例 对日期进行解析或者格式化会导致程序出错,本节就讨论下它为何是线程不安全的,以及如何避免。一、SimpleDateFormat 线程不安全演示和分析1.1、问题复现public class TestSimpleDateFormat……继续阅读 »

2周前 (11-26) 10浏览

list.stream()(Java8新特性之Stream流)案例

list.stream()(Java8新特性之Stream流)案例
一、概述  Stream 流是 Java 8 新提供给开发者的一组操作集合的 API,将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选、排序、聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由终端操作 (terminal operation) 得到前面处理的结果。Stream 流可以极大的提高开发效率,也可以使用它写出更加简洁……继续阅读 »

2周前 (11-26) 18浏览

java抛出异常(JavaEE手动抛出异常(throw))

java抛出异常(JavaEE手动抛出异常(throw))
手动抛出异常(throw)Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可以根据需要手动创建并抛出。可以抛出的异常必须是Throwable或其子类的实例。首先要创建异常类对象,然后通过throw语句实现抛出操作,提交给Java运行环境。语法格式:throw 异常对象;不管系统自动生成的还是手动创建的,异常对象一旦抛出都需要使用捕获try…catch或继续抛出throws的……继续阅读 »

2周前 (11-25) 16浏览