- 博客(148)
- 资源 (27)
- 收藏
- 关注

原创 「个人第一篇博客」 UAP用友平台配置(NC65)
笔记pdf文件下载:https://download.csdn.net/download/d_c_hao/108415981.配置ufjdk环境变量将D:\nc_work\studio\UAP-STUDIO20151229132355\UAP目录下的ufjdk文件夹拷贝到C盘下,配置jdk环境变量2.UAP配置打开D:\nc_work\nchomes\bin目录下的sy...
2018-12-11 09:50:10
10564
10
原创 csv文件乱码或者科学计数问题解决方法
五、选择科学计数法显示字段,取消勾选tab键 在其他位置输入一个英文逗号 ,点击下一步即可。二、点击数据导入数据,直接打开数据文件,选择数据源, 找到你的csv文件打开。一、新建一个表格 全选 右键 设置单元格格式,将表格格式全部设置程文本。四、选择分隔符号, 点击下一步。
2023-04-12 14:59:41
5540
原创 传入图片路径,对图片进行base64编码
import com.sun.org.apache.xml.internal.security.utils.Base64;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Objects;import java.util.Scanner;/** * @Author: dell * @Version: V1.0.0 * @Date:..
2022-04-27 16:00:43
466
原创 Oracle 19c (19.3) 安装
下载:Database Software Downloads | Oracle下载解压目录:运行setup.exe安装完成,验证:命令行sqlplus /nolog--创建表空间create tablespace adc_db --表空间名称datafile 'D:\Oracle19c\oradata\ORCL\adc_db.dbf' --表空间数据文件存放路径,物理文件size 50M --表空间大小,初始值autoex...
2021-09-23 14:36:28
499
原创 检验日期格式
public boolean checkTimeFormat(String time) throws Exception { Format f = new SimpleDateFormat("yyyyMMdd"); Date d = (Date) f.parseObject(time); String format = f.format(d); if (time.equals(format)) { return tr..
2021-09-23 14:29:58
558
原创 Base64编码/解码
import java.io.UnsupportedEncodingException;import java.util.Base64;import java.util.Scanner;/**@Author: dell@Version: V1.0.0@Date: 2021年05月20日*/public class Base64trans {public static void main(String[] args) {System.out.println("------Bas
2021-06-04 11:52:27
3013
原创 校验base64字符串是否为jpg图片
import com.sun.org.apache.xml.internal.security.exceptions.Base64DecodingException;import com.sun.org.apache.xml.internal.security.utils.Base64;import javax.imageio.ImageIO;import java.awt.*;import java.io.ByteArrayInputStream;import java.io.InputSt.
2021-06-04 11:51:49
3257
原创 IDEA如何将工程转为maven工程(IDEA项目右键菜单无maven选项 )
需要先将项目转成maven项目,才会有maven菜单项 转maven项目的方法步骤:1、选中工程,使用快捷键Shift +Ctrl +A,然后输入maven,选择AddMavenProjects选项2、 在弹出框中选中项目的pom.xml文件,点ok即可3、点ok之后,IDEA右侧边栏就会出现maven栏目,此时选中项目右键菜单也有maven项了 4、之后再想添加maven项目,点 + 号,选中对应项目的po...
2021-05-28 11:31:03
2298
1
原创 IDEA中提示Cannot resolve symbol ‘String’错误
使用IDEA打开项目,代码中提示报错信息:Cannot resolve symbol 'String’问题原因:没有配置Project SDK,修改之前选的是<No SDK>,选择一个jdk就可以了(好像不能针对modules配)
2021-05-28 11:30:19
2910
原创 IDEA 配置tomcat运行Javaweb项目
配置tomcat其他内容保持默认即可创建工作空间(project):IDEA的project 相当于Eclipse的workspace创建普通的Java项目创建工程modeul:IDEA的Module是相当于Eclipse的项目(project)引入jar包启动编码格式...
2021-04-19 09:32:40
273
原创 IDEA 设置
1-取消自动更新2-自动编译3-新建文件时候自动生成文件头部信息/** * @Author: dell * @Version: V1.0.0 * @Date: ${YEAR}-${MONTH}-${DAY} ${TIME} */4-自动导包和去包5-一行代码自动折叠6-项目编码7-修改快捷键(可以改成Eclipse的)8-maven配置9-从SVN检出项目...
2021-04-19 09:30:07
218
原创 Win10系统导入证书私钥
一、Win10系统导入证书私钥二、直接点击“下一步”即可三、输入私钥密码,“导入选项”按下图所示选择,点击“下一步”四、默认选择“自动选择证书存储”,点击“下一步”五、点击“完成”,弹出“导入成功”窗户,则私钥导入完成...
2021-02-20 13:48:36
5306
原创 Win10系统导出证书私钥及公钥
一、打开Internet选项,如图示打开方式一:通过控制面板打开打开方式二:通过IE浏览器打开打开方式三:通过360浏览器打开二、在Internet选项中选择“内容”页签,点击“证书”, 然后在“个人”页签中,选中要导出的证书,点击“导出”三、点击导出后,会弹出“证书导出向导”页面,点击“下一步”,开始导出证书四、选择“是,导出私钥”,点击“下一步”,导出私钥4.1 如下如所示,勾选“个人信息交换”,点击“下一步”4.2 如下如所示,勾选...
2021-02-19 17:21:33
12944
1
原创 Tomact启动Maven项目报错404,控制台报错:Error configuring application listener of class ..
问题:更换eclipse空间后,从SVN上更新下来的项目,转为maven项目后,启动tomcat出现404页面,控制台报错截图如下:排查问题时尝试的方法:1-检查Tomcat服务器server Location配置2-查看项目属性Web Deployment Assembly里有否添加了Maven Dependencies3-更新maven项目,重新部署tomcat服务器4-该报错说明Tomact启动时找不到Listener,检查项目中web.xml里的监听类路径是否正.
2021-02-02 13:45:11
842
原创 win10系统下的curl安装配置
curl工具包下载地址:https://curl.haxx.se/download.html1-解压2-添加环境变量首选在系统变量中添加:CURL_HOME变量值为:D:\Program Files\Apache\curl-7.73.0 【工具包解压后的存放路径】然后在系统变量 Path 中添加值:%CURL_HOME%\bin...
2021-02-02 13:44:52
374
原创 线程调度器和时间分片
线程调度器是一个操作系统服务,它负责为Runnable状态的线程分配CPU时间。一旦我们创建一个线程并启动它,它的执行便依赖于线程调度器的实现。同上一个问题,线程调度并不受到Java虚拟机控制,所以由应用程序来控制它是更好的选择(也就是说不要让你的程序依赖于线程的优先级)。时间分片是指将可用的CPU时间分配给可用的Runnable线程的过程。分配CPU时间可以基于线程优先级或者线程等待的时...
2020-12-29 15:28:04
311
原创 线程优先级
每一个线程都是有优先级的,一般来说,高优先级的线程在运行时会具有优先权,但这依赖于线程调度的实现,这个实现是和操作系统相关的(OS dependent)。我们可以定义线程的优先级,但是这并不能保证高优先级的线程会在低优先级的线程前执行。线程优先级是一个int变量(从1-10),1代表最低优先级,10代表最高优先级。java的线程优先级调度会委托给操作系统去处理,所以与具体的操作系统优先级有...
2020-12-29 15:27:22
249
原创 如何让正在运行的线程暂停一段时间
可以使用Thread类的Sleep()方法让线程暂停一段时间。需要注意的是,这并不会让线程终止,一旦从休眠中唤醒线程,线程的状态将会被改变为Runnable,并且根据线程调度,它将得到执行。...
2020-12-18 08:52:43
1291
原创 Java线程池中submit() 和 execute()方法的区别
两个方法都可以向线程池提交任务,execute()方法的返回类型是void,它定义在Executor接口中。而submit()方法可以返回持有计算结果的Future对象,它定义在ExecutorService接口中,它扩展了Executor接口,其它线程池类像ThreadPoolExecutor和ScheduledThreadPoolExecutor都有这些方法。...
2020-12-16 11:24:51
706
原创 Java线程池
创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数有限。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。从JDK1.5开始,Java API提供了Executor框架让你可以创建不同的线程池。...
2020-11-18 11:23:53
140
原创 Java中的Semaphore是什么
Java中的Semaphore是一种新的同步类,它是一个计数信号。从概念上讲,从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release()添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore只对可用许可的号码进行计数,并采取相应的行动。信号量常常用于多线程的代码...
2020-11-13 09:22:50
469
原创 Java中的同步集合与并发集合的区别
同步集合与并发集合都为多线程和并发提供了合适的线程安全的集合,不过并发集合的可扩展性更高。在Java1.5之前程序员们只有同步集合来用且在多线程并发的时候会导致争用,阻碍了系统的扩展性。Java5介绍了并发集合像ConcurrentHashMap,不仅提供线程安全还用锁分离和内部分区等现代技术提高了可扩展性。...
2020-10-16 08:53:54
354
原创 Java中interrupted 和 isInterrupted方法的区别
interrupt方法用于中断线程。调用该方法的线程的状态为将被置为”中断”状态。注意:线程中断仅仅是置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处理。支持线程中断的方法(也就是线程中断后会抛出interruptedException的方法)就是在监视线程的中断状态,一旦线程的中断状态被置为“中断状态”,就会抛出中断异常。interrupted查询当前线程的中断状态...
2020-09-10 08:53:52
1059
原创 ThreadLocal变量
ThreadLocal是Java里一种特殊的变量。每个线程都有一个ThreadLocal就是每个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了。它是为创建代价高昂的对象获取线程安全的好方法,比如你可以用ThreadLocal让SimpleDateFormat变成线程安全的,因为那个类创建代价高昂且每次调用都需要创建不同的实例所以不值得在局部范围使用它,如果为每个线程提供一个自己独有的变量拷贝...
2020-09-08 16:19:10
342
原创 什么是线程安全?servlet是线程安全吗?
线程安全是编程中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。Servlet不是线程安全的,servlet是单实例多线程的,当多个线程同时访问同一个方法,是不能保证共享变量的线程安全性的。Struts2的action是多实例多线程的,是线程安全的,每个请求过来都会new一个新的action分配给这个请求,请求完成后销毁。...
2020-09-03 09:02:00
842
原创 乐观锁和悲观锁
悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。乐观锁:每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候...
2020-09-02 08:59:04
123
原创 Daemon线程,后台线程
所谓后台(daemon)线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这个线程并不属于程序中不可或缺的部分。因此,当所有的非后台线程结束时,程序也就终止了,同时会杀死进程中的所有后台线程。反过来说, 只要有任何非后台线程还在运行,程序就不会终止。必须在线程启动之前调用setDaemon()方法,才能把它设置为后台线程。注意:后台进程在不执行finally子句的情况下就会终止其ru...
2020-08-23 16:53:00
192
原创 多线程上下文切换
在上下文切换过程中,CPU会停止处理当前运行的程序,并保存当前程序运行的具体位置以便之后继续运行。从这个角度来看,上下文切换有点像我们同时阅读几本书,在来回切换书本的同时我们需要记住每本书当前读到的页码。在程序中,上下文切换过程中的“页码”信息是保存在进程控制块(PCB)中的。PCB还经常被称作“切换桢”,“页码”信息会一直保存到CPU的内存中,直到他们被再次使用。上下文切换是存储和恢复...
2020-08-19 09:40:09
224
原创 不可变对象与并发
不可变对象即对象一旦被创建它的状态就不能改变,反之即为可变对象。不可变对象的类即为不可变类。Java平台类库中包含许多不可变类,如String、基本类型的包装类、BigInteger和BigDecimal等。不可变对象天生是线程安全的。它们的常量(域)是在构造函数中创建的。既然它们的状态无法修改,这些常量永远不会变。不可变对象永远是线程安全的。只有满足如下状态,一个对象才是不...
2020-08-14 17:13:26
219
原创 Java线程调度算法
计算机通常只有一个CPU,在任意时刻只能执行一条机器指令,每个线程只有获得CPU的使用权才能执行指令.所谓多线程的并发运行,其实是指从宏观上看,各个线程轮流获得CPU的使用权,分别执行各自的任务.在运行池中,会有多个处于就绪状态的线程在等待CPU,JAVA虚拟机的一项任务就是负责线程的调度,线程调度是指按照特定机制为多个线程分配CPU的使用权.有两种调度模型:分时调度模型和抢占式调度模型。...
2020-08-10 09:08:51
343
原创 Java中如何唤醒被阻塞的线程
在Java发展史上曾经使用suspend()、resume()方法对于线程进行阻塞唤醒,但随之出现很多问题,比较典型的还是死锁问题。 解决方案可以使用以对象为目标的阻塞,即利用Object类的wait()和notify()方法实现线程阻塞。首先,wait、notify方法是针对对象的,调用任意对象的wait()方法都将导致线程阻塞,阻塞的同时也将释放该对象的锁,相应地,调用任意对象的no...
2020-08-03 16:42:17
993
原创 多线程同步与互斥的实现方法
线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步。线程间的同步方...
2020-07-27 14:16:15
712
原创 RSA(非对称密钥加密技术)基本原理
RSA密钥产生过程(1) 选取大素数p和q;(2) 计算模 n=p*q;(3) 计算φ(n) = (p–1)(q–1);(4) 选择公钥幂指数e,1<e< φ(n) , gcd(e, φ(n) )=1;(5) 选择私钥幂指数d, (d*e)mod φ(n) =1;加密/解密:0<m<n...
2020-07-24 09:46:02
557
原创 如何停止一个正在运行的线程
使用共享变量的方式在这种方式中,之所以引入共享变量,是因为该变量可以被多个执行相同任务的线程用来作为是否中断的信号,通知中断线程的执行。使用interrupt方法终止线程如果一个线程由于等待某些事件的发生而被阻塞,又该怎样停止该线程呢?这种情况经常会发生,比如当一个线程由于需要等候键盘输入而被阻塞,或者调用Thread.join()方法,或者Thread.sleep()方法,在...
2020-07-21 09:07:16
920
原创 CycliBarriar和CountdownLatch有什么区别
CyclicBarrier可以重复使用,而CountdownLatch不能重复使用。Java的concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。你可以向CountDownLatch对象设置一个初始的数字作为计数值,任何调用这个对...
2020-07-15 13:46:07
546
原创 Future和Callable,以及FutureTask
在Java并发程序中FutureTask表示一个可以取消的异步运算。它有启动和取消运算、查询运算是否完成和取回运算结果等方法。只有当运算完成的时候结果才能取回,如果运算尚未完成get方法将会阻塞。一个FutureTask对象可以对调用了Callable和Runnable的对象进行包装,由于FutureTask也是调用了Runnable接口所以它可以提交给Executor来执行。C...
2020-07-14 15:34:57
238
原创 什么是原子操作
原子操作是指一个不受其他操作影响的操作任务单元。原子操作是在多线程环境下避免数据不一致必须的手段。处理器使用基于对缓存加锁或总线加锁的方式来实现多处理器之间的原子操作。在Java中可以通过锁和循环CAS的方式来实现原子操作。 CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作。int...
2020-07-13 10:03:16
2818
原创 阻塞队列
阻塞队列是一个支持两个附加操作的队列。在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。JDK7提供了7个阻塞队列,分别是:ArrayBlockingQueue :一个由数组结构组成的有...
2020-06-19 15:54:58
164
原创 死锁&活锁,死锁&饥饿
死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。产生死锁的必要条件:互斥条件:所谓互斥就是进程在某一时间内独占资源。 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。 循环等待条件:若干进程之间形成一种头尾相接的循环等...
2020-06-15 09:00:13
338
原创 java中守护线程和本地线程区别
java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前调用,否则运行时会抛出异常。两者的区别:虚拟机(JVM)何时离开,Daemon是为其他...
2020-06-11 17:39:36
544
Java并发编程.pptx
2019-12-08
Java的dubbo.xsd配置文件
2019-11-29
UAP实现拉单功能的代码
2019-03-01
NC65通过BaseDAO操作数据库
2019-03-01
NC后台任务插件开发代码
2019-01-11
NC后台任务开发接口
2019-01-11
UAP增加自定义档案后移植问题
2019-01-11
NC65编写保存前事件
2019-01-11
UAP数据类型转换工具类
2019-01-11
UAP树形参照代码文件(NC65)
2019-01-11
UAP培训-流程开发-业务流程操作步骤
2019-01-07
NC65自定义参照代码
2018-12-12
NC65主子VO字段
2018-12-10
NC65单据节点开发
2018-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人