![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 92
介绍java 开发的基础性知识,为其他的专栏的基础知识。
一瓢一瓢的饮 alanchanchn
2023博客之星12
本科毕业于西安电子科技大学
硕士毕业于华东理工大学
长期从事软件、管理相关工作,擅长管理、一般应用系统开发、大数据开发,常见的框架、组件较为了解。
展开
-
centos 关于日志文件切割logrotate的使用及示例
Logrotate 程序是一个日志文件管理工具。用于分割日志文件,压缩转存、删除旧的日志文件,并创建新的日志文件logrotate 一般系统会自带,不需要自己安装logrotate 处理日志,依靠 cron 每天在执行时间自动执行#/etc/logrotate.conf #/etc/logrotate.d/ #logrotate.conf:为主配置文件 #logrotate.d:为配置相关子系统,用于隔离每个应用配置(Nginx、PHP、Tomcat...)原创 2023-07-03 14:53:28 · 41224 阅读 · 0 评论 -
4、apache-kylin-3.1.3-bin-hadoop3增量构建、全量构建详细示例
本文详细了介绍了关于全量构建和增量构建的步骤以及增量构建的2种方式。日常工作中更多的还是使用增量构建,其中增量构建的方式有通过kylin页面和通过restful接口形式进行构建。本文依赖hive和kylin环境好用。本文分为三部分,即增量构建介绍、与全量构建的区别和增量构建详细示例。本文部分数据来源于互联网。原创 2023-06-25 15:05:35 · 41719 阅读 · 0 评论 -
3、apache-kylin-3.1.3-bin-hadoop3基本操作(创建model和cube、数据查詢)
本文简单的介绍了kylin的基本使用示例,也给出了hive和kylin的使用比较。本文中第一个示例详细的介绍了kylin的使用步骤,以及与hive的使用简单对比;第二个示例单独的使用kylin来实现,仅仅给出了最后一个示例的hive执行时间的对比。本文依赖hive环境好用、kylin环境好用。本文部分数据来源于互联网。原创 2023-06-25 09:49:56 · 41806 阅读 · 0 评论 -
2、apache-kylin-3.1.3-bin-hadoop3集群部署
Kylin 实例是无状态的服务,运行时的状态信息存储在 HBase metastore 中。出于负载均衡的考虑,您可以启用多个共享一个 metastore 的 Kylin 实例,使得各个节点分担查询压力且互为备份,从而提高服务的可用性。原创 2023-06-25 09:08:34 · 41896 阅读 · 0 评论 -
1、apache-kylin-3.1.3-bin-hadoop3介绍及部署、验证详解
Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供 Hadoop 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc.开发并贡献至开源社区。Apache Kylin™ 令使用者仅需三步,即可实现超大数据集上的亚秒级查询。定义数据集上的一个星形或雪花形模型在定义的数据表上构建cube使用标准 SQL 通过 ODBC、JDBC 或 RESTFUL API 进行查询,仅需亚秒级响应时间即可获得查询结果。原创 2023-06-22 18:18:00 · 42232 阅读 · 3 评论 -
8、【java数据安全】国家商用密码介绍及数字签名、密钥交换、密钥编码格式使用示例(二)
本文介绍了国密的数字签名、密钥交换和密钥编码格式的使用示例,接上一篇文章。原创 2023-06-21 16:41:45 · 42043 阅读 · 0 评论 -
7、【java数据安全】国家商用密码介绍及对称加密、非对称加密使用示例(一)
国密即国家密码局认定的国产密码算法,即商用密码。商用密码,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。了保障在金融、医疗等领域保障信息传输安全,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)等。SSF33、SM1、SM4、SM7是对称算法SM2、SM9是非对称算法SM3是哈希算法报文摘要与MD类似,只是算法不同。原创 2023-06-21 16:40:37 · 42212 阅读 · 0 评论 -
6、【java数据安全】数字信封介绍及实现流程
前面几篇文章介绍了加密解密的几种算法,以及保证网络传输过程中安全的数字签名和数字证书,但如何深入的了解还是存在一定的漏洞,即截获了公钥,然后解密,最后再生成新的密钥对,伪造公钥发送,如此则会出现非希望看到的结果。为了降低该种情况的出现,则出现了数字信封的解决办法。数字信封中采用了单钥加密体制和公钥密码体制。信息发送者首先利用随机产生的【对称密码】加密信息(因为非对称加密技术的速度比较慢),再利用接收方的【公钥】加密对称密码,被公钥加密后的对称密钥被称之为数字信封。原创 2023-06-21 14:20:01 · 42193 阅读 · 0 评论 -
5、【java数据安全】数字签名的三种算法(RSA、DSA和ECDSA)使用示例
数字签名算法是一种带有密钥的消息摘要算法,使用的是非对称加密算法与消息摘要算法的结合。数字签名算法要求能够验证数据的完整性、数据的来源以及防抵赖。消息摘要算法是验证数据完整性的最佳算法;防抵赖靠签名来确保,也是基于消息摘要的。数字签名算法包含签名和验证两个重要步骤,遵循“私钥签名,公钥验证”的签名验证方式。签名时需要私钥和待签名的数据;验证时需要公钥、签名值和待签名数据,其核心就是消息摘要信息,签名值与消息摘要值一样,通常以十六进制字符串来表示。原创 2023-06-21 13:57:04 · 42260 阅读 · 0 评论 -
4、【java数据安全】非对称加密算法(DH、RSA、EIGamal/DSA)的介绍、应用场景和示例
非对称加密算法是加密和解密使用不同的密钥。公钥和私钥成对出现,公钥加密私钥解密,或者私钥加密公钥解密。由于其时间效率上不高,一般应用在安全性要求较高的场合。常用的对称加密算法有两类,即基于因子分解难题的RSA和基于离散对数难题的DSA。RSA是应用最广泛的非对称加密算法,也是第一个既能用于数据加密也能用于数字签名的算法。DSA是由EIGamal算法演变而来的,用于数字签名。DH(Diffie-Hellman)密钥交换算法主要是为了解决密钥交换而发展出来的。原创 2023-06-21 13:44:09 · 42209 阅读 · 0 评论 -
3、【java数据安全】对称加密的5种(DES/3DES、AES、IDEA、PBE)常见算法的使用示例
对称加密就是加密与解密拥有相同的密钥,根据加密方式可分为密码和分组密码。分组密码工作模式可分为ECB、CBC、CFB、OFB和CTR等,密钥长度决定了加密算法的安全性。常见的加密算法有DES或3DES、AES和RC系列算法,除此之外,还有Blowfish、Twofish、Serpent、IDEA和PBE等。DES(Data Encryption Standard)数据加密标准,其衍生算法有DESede(3DES),由于安全性的原因AES逐步替代DES。原创 2023-06-21 09:15:09 · 42036 阅读 · 0 评论 -
2、【java数据安全】base64与报文摘要MD(md5、sha、mac)简单介绍及应用场景、示例
任何消息经过散列函数处理后都会获得唯一的散列值(hashcode),该过程称为消息摘要,其散列值成为数字指纹,其算法即是消息摘要算法。消息摘要算法又称为散列算法,其核心在于散列函数的单向性,即通过散列函数可获得对应的散列值,但不可通过该散列值获得其原始信息。消息摘要算法包含三大系列,即MD 、SHA 和MC,常用于验证数据的完整性,是数字签名的核心算法。MD,message digest,消息摘要算法,包括MD2、MD4、MD5。原创 2023-06-20 14:13:40 · 42157 阅读 · 0 评论 -
1、【java数据安全】数据安全之加密解密(base64、MD、SHA、DES、AES、IDEA、PBE、DH、RSA、EIGamal)、数字签名(DSA、ECDSA)和数字证书介绍、应用示例详细介绍
保密性是确保数据仅能被合法用户访问,即数据不能被未授权的第三方使用。一般通过对称加密来完成保密性,同时也能防窃听,对称加密当前安全性较高的算法有AES和PBE算法。内容传送编码是一种以任意8位字节列组合的描述形式,这种形式不容易被人直接识别。经过base64编码后的数据会比原来数据长约1/3,经过base64编码后的字符串的字符数是以4为单位的整数倍。实现base64的算法推荐使用apache的common codec类库。原创 2023-06-20 10:29:46 · 42420 阅读 · 1 评论 -
3、【java程序运行监控byteman】Byteman脚本详解及javaagent和byteman结合使用详细示例
[1、【java程序运行监控byteman】之安装部署和入门示例][2、【java程序运行监控byteman】使用示例(运行中方法耗时监控、javaagent监控、jvm监控、规则的检查、是否运行以及查看等)][3、【java程序运行监控bytem原创 2023-06-18 11:08:27 · 42070 阅读 · 0 评论 -
2、【java程序运行监控byteman】使用示例(运行中方法耗时监控、javaagent监控、jvm监控、规则的检查、是否运行以及查看等)
本文介绍了byteman的其他几种应用场景及示例,比如javaagent、监控jvm、bmjava命令、如何查看运行的规则、检查规则的正确性、检查规则是否在运行中等。本文分为2个部分,即运行中方法耗时监控和其他示例。原创 2023-06-16 15:54:15 · 42244 阅读 · 0 评论 -
1、【java程序运行监控byteman】之安装部署和入门示例
本文作为byteman的第一篇文章,初步介绍了byteman、部署和验证以及两个入门案例(程序运行中读取其局部变量值和程序未运行时统计某个方法耗时)。更多的关于byteman参考该系列的其他文章。The simplest use of Byteman is to insert print statements into code so you can see what your program is doing. Byteman can read and print public, private and原创 2023-06-16 08:55:03 · 42337 阅读 · 0 评论 -
java运行时间监控Stopwatch介绍及示例、源码
Spring提供的计时器StopWatch对于秒、毫秒为单位方便计时的程序,尤其是单线程、顺序执行程序的时间特性的统计输出支持比较好。也就是说假如有几个在顺序上前后执行的几个任务,而且我们比较关心几个任务分别执行的时间占用状况,希望能够形成一个不太复杂的日志输出,StopWatch提供了这样的功能。而且Spring的StopWatch基本上也就是仅仅为了这样的功能而实现。原创 2023-06-15 17:32:32 · 42520 阅读 · 0 评论 -
jvm性能监控工具(jps、jstat、jinfo、jmap、jhat、jstack、jvisualvm和jconsole)介绍及示例
JDK本身提供了很多方便的JVM性能调优监控工具,除了jps、jstat、jinfo、jmap、jhat、jstack等小巧的工具,还有集成式的jvisualvm和jconsole。这些工具在 $JAVA_HOME/bin目录下。原创 2023-06-15 15:04:08 · 45533 阅读 · 0 评论 -
java反射机制、类的加载详解与示例演示
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。也可以通过继承ClassLoader类来完成自定义类加载器,自定义类加载器的目的一般是为了加载网络上的类,因为这会让class在网络中传输,为了安全,那么class一定是需要加密的,所以需要自定义的类加载器来加载(自定义的类加载器需要做解密工作)。原创 2023-06-14 16:45:49 · 42571 阅读 · 0 评论 -
java的序列化和反序列化详解及示例
对于序列化接口Serializable接口是一个标识接口,它的主要作用就是标识这个对象是可序列化的,jre对象在传输对象的时候会进行相关的封装。类 ObjectInputStream 和 ObjectOutputStream 是高层次的数据流,它们包含序列化和反序列化对象的方法。上面的方法序列化一个对象,并将它发送到输出流。该方法从流中取出下一个对象,并将对象反序列化。它的返回值为Object,因此,你需要将它转换成合适的数据类型。原创 2023-06-14 11:16:37 · 43533 阅读 · 0 评论 -
java常见的排序算法(冒泡排序、选择排序、插入排序、shell排序、归并排序、堆排序、快速排序)介绍
java常见的排序算法(冒泡排序、选择排序、插入排序、shell排序、归并排序、堆排序、快速排序)介绍原创 2023-06-13 16:05:29 · 42489 阅读 · 0 评论 -
java 代理(静态代理、动态代理的不同实现)详解及示例
代理模式上,基本上有Subject角色,RealSubject角色,Proxy角色。Subject角色负责定义RealSubject和Proxy角色应该实现的接口;RealSubject角色用来真正完成业务服务功能;Proxy角色负责将自身的Request请求,调用realsubject 对应的request功能来实现业务功能,自己不真正做业务。代理对象和被代理对象一般实现相同的接口,调用者与代理对象进行交互。代理的存在对于调用者来说是透明的,调用者看到的只是接口。原创 2023-06-13 15:05:39 · 43889 阅读 · 0 评论 -
3、【java线程及线程池系列】线程池ThreadPoolExecutor的类结构、使用方式示例、线程池数量配置原则和线程池使用注意事项
ThreadPoolExecutor继承了AbstractExecutorService,AbstractExecutorService的实现如下/*** value.AbstractExecutorService是一个抽象类,它实现了ExecutorService接口。原创 2023-06-13 11:02:09 · 42344 阅读 · 0 评论 -
2、【java线程及线程池系列】synchronized、ReentrantLock和ReentrantReadWriteLock介绍及示例
可重入锁 :可重入锁的概念是自己可以再次获取自己的内部锁。举个例子,比如一条线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象的锁的时候还是可以获取的(如果不可重入的锁的话,此刻会造成死锁)。可重入锁是一种递归无阻塞的同步机制。读写锁 :读写锁拆成读锁和写锁来理解。读锁可以共享,多个线程可以同时拥有读锁,但是写锁却只能只有一个线程拥有,而且获取写锁的时候其他线程都已经释放了读锁,而且该线程获取写锁之后,其他线程不能再获取读锁。写锁是排他锁,读锁是共享锁。原创 2023-06-12 17:36:39 · 42589 阅读 · 0 评论 -
1、【java线程及线程池系列】java线程及线程池概念详解
缓冲队列长度的设置,按照一般的理解应该设置成maximumPoolSize的5倍,因为单个线程在不切换cpu的情况下是单个cpu运算一个线程,corePoolSize设置成和cpu一样的数量,maximumPoolSize设置成cpu的2倍,避免cpu处于空闲状态则直接加入一旦cpu空闲理解执行的线程数量,同时由于cpu的速度较快以及有请求执行的线程加入缓冲队列中减少cpu等待时间,故将缓冲队列设置大一些。线程池存在的目的在于提前创建好需要的线程,减少临时创建线程带来的资源消耗。原创 2023-06-12 16:59:05 · 42478 阅读 · 0 评论 -
java注解详解及示例
本文简单介绍java的注解原理与示例。原创 2023-06-09 10:41:56 · 42531 阅读 · 0 评论