202009-27 在Java中轻松将HTML格式文本转换为纯文本的方法示例(保留换行) 第一步:引入Jsoup和lang和lang3的依赖:Jsoup是HTML解析器lang和lang3这两个包里有转换所需的工具类<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.11.3</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3... 继续阅读 >
202009-27 Java Servlet输出中文乱码问题解决方案 1.现象:字节流向浏览器输出中文,可能会乱码(IE低版本)privatevoidbyteMethod(HttpServletResponseresponse)throwsIOException,UnsupportedEncodingException{Stringdate="你好";ServletOutputStreamoutputStream=response.getOutputStream();outputStream.write(date.getBytes();}原因:服务器端和浏览器端的编码格式不一致。解决方法:服务器端和浏览器端的编码格式保持一致privatevoidbyteMeth... 继续阅读 >
202009-27 Java上传下载文件并实现加密解密 使用Jersey服务器实现上传,使用HTTP请求实现下载引入依赖在pom.xml中添加Jersey相关依赖<dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-client</artifactId><version>1.18.1</version></dependency>创建工具类importcom.sun.jersey.api.client.Client;importcom.sun.jersey.api.client.ClientHandlerException;importcom.sun.jersey.api.client.UniformInterfaceException;importcom.sun.je... 继续阅读 >
202009-27 Java进程cpu占用过高问题解决 cpu是时分(timedivision)的,操作系统里有很多线程,每个线程的运行时间由cpu决定,cpu会分给每个线程一个时间片,时间片是一个很短的时间长度,如果在时间片内,线程一直占有,则是100%;我们应该意识到,cpu运行速度很快(主频非常高),除非密集型耗费cpu的运算,其它类型任务都会在小于时间片的时间内结束。产生CPU100%的原因:某一程序一直占用CPU是导致CPU100%的原因,大概有以下几种情况:1、Java内存不够或溢出导致GCov... 继续阅读 >
202009-27 Android通过Java sdk的方式接入OpenCv的方法 简述公司最近要做运动检测和眼球追踪,鉴于资费等因素,最后考虑使用OpenCv的相关Api来来满足业务需求。在使用过程中发现OpenCv的v4.2.0和v4.1.2接入后均存在一些bug,所以最后选择了v4.1.0版本。接入步骤 一、下载OpenCVSdk前往OpenCv官网下载对应的Androidv4.1.0版本的sdk。二、AndroidStudio集成OpenCVSdk1、AndroidStudio下载cmake和ndk2、AndroidStudio新建ndk项目3、AndroidStudio导入OpenCvSdk将下载后的... 继续阅读 >
202009-27 Java虚拟机内存溢出与内存泄漏 一、基本概念内存溢出:简单地说内存溢出就是指程序运行过程中申请的内存大于系统能够提供的内存,导致无法申请到足够的内存,于是就发生了内存溢出。内存泄漏:内存泄漏指程序运行过程中分配内存给临时变量,用完之后却没有被GC回收,始终占用着内存,既不能被使用也不能分配给其他程序,于是就发生了内存泄漏。内存溢出outofmemory,是指程序在申请内存时,没有足够的内存空间供其使用,出现outofmemory;内存泄露memoryl... 继续阅读 >
202009-27 Java通过try释放资源的方法 时间紧迫,长话短说,今天,小明给大家同步一个知识点,使用try-with-resources来优雅地关闭资源。1.背景其实,在JDK7就已经引入了对try-with-resources的支持,它的主要作用就是解放小明和小明小伙伴们的双手,帮助我们自动释放使用过的资源(比如输入、输出流)。2.例子如何才能使用这个自动关闭资源的骚操作呢?我们只需要在try内声明和初始化资源即可,如下所示:这样,当我们写入文件时,只需要将心思放在输入的内容就行啦... 继续阅读 >
202009-27 Java获取用户访问IP及地理位置的方法详解 本文实例讲述了Java获取用户访问IP及地理位置的方法。分享给大家供大家参考,具体如下:获取用户访问的IP地址/***获取用户ip地址*@return*/publicstaticStringgetIp(HttpServletRequestrequest){Stringip=request.getHeader("x-forwarded-for");if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){ip=request.getHeader("Proxy-Client-IP");}if(ip==null||ip.length()==0... 继续阅读 >
202009-27 java JSON解析库Alibaba Fastjson用法详解 本文实例讲述了javaJSON解析库AlibabaFastjson用法。分享给大家供大家参考,具体如下:Json是一种轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。现在主流的对象与JSON互转的工具很多,这里介绍的是阿里巴巴的开源库-Fastjson。Fastjson是一个Java库,可用于将Java对象转... 继续阅读 >
202009-27 Java使用JSONObject操作json实例解析 本文实例讲述了Java使用JSONObject操作json。分享给大家供大家参考,具体如下:简介在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构:“名称/值”对的集合(ACollectionofname/valuep... 继续阅读 >
202009-27 java中functional interface的分类和使用详解 java8引入了lambda表达式,lambda表达式实际上表示的就是一个匿名的function。在java8之前,如果需要使用到匿名function需要new一个类的实现,但是有了lambda表达式之后,一切都变的非常简介。我们看一个之前讲线程池的时候的一个例子://ExecutorServiceusingclassExecutorServiceexecutorService=Executors.newSingleThreadExecutor();executorService.submit(newRunnable(){@Overridepublicvoidrun(){log.i... 继续阅读 >
202009-27 java实现响应重定向发送post请求操作示例 本文实例讲述了java实现响应重定向发送post请求操作。分享给大家供大家参考,具体如下:关于重定向我们用的比较多的还是redirect:重定向,默认发送的get请求。return"redirect:/index";但有时候请求地址必须为post请求,比如security登录就只能接收post请求,下面来看一下如何后台如何发送post请求响应重定向。首先可以定义一个map,用于存放参数键值对Map<String,String>parameter=newHashMap<String,String>();添加参数... 继续阅读 >
202009-27 Java JDBC基本使用方法详解 本文实例讲述了JavaJDBC基本使用方法。分享给大家供大家参考,具体如下:本文内容:什么是JDBCJDBC的使用事务连接池DbUtils首发日期:2018-05-27修改:2018-07-19:增加了事务、连接池、DBUtils2018-07-27:对特别情况下的事务进行了描述。对DBUtils增加了关闭资源、关闭流。连接池发现漏了释放连接。什么是JDBC:JDBC全称JavaDatabaseConnectivityJDBC可以通过载入不同的数据库的“驱动程序”而与不同的数据... 继续阅读 >
202009-27 Java开启新线程并传参方法代码实现 一、继承Thread类步骤:1):定义一个类A继承于Java.lang.Thread类.2):在A类中覆盖Thread类中的run方法.3):我们在run方法中编写需要执行的操作:run方法里的代码,线程执行体.4):在main方法(线程)中,创建线程对象,并启动线程:(1)创建线程类对象:A类a=newA类();(2)调用线程对象的start方法:a.start();//启动一个线程注意:千万不要调用run方法,如果调用run方法好比是对象调用方法,依然还是只有一个线程,并没有开启新的线程.线程只... 继续阅读 >
202009-27 Java基于redis实现分布式锁代码实例 为什么会有这个需求:例如一个简单用户的操作,一个线程去修改用户状态,首先在在内存中读出用户的状态,然后在内存中进行修改,然后在存到数据库中。在单线程中,这是没有问题的。但是在多线程中由于读取,修改,写入是三个操作,不是原子操作(同时成功或失败),因此在多线程中会存在数据的安全性问题。这个问题的话,就可以用分布式锁在限制程序的并发执行。实现思路:就是进来一个先占位,当别的线程进来操作的时候,发现有人... 继续阅读 >
202009-27 Java List集合方法及遍历过程代码解析 集合元素框架publicclassListDemo02{publicstaticvoidmain(String[]args){//创建集合对象List<String>list=newArrayList<String>();//添加元素list.add("hello");list.add("world");list.add("java");//输出集合对象System.out.println(list);//[hello,world,java]}}方法运行实例//voidadd(intindex,Eelement):在此集合中的指定位置插入指定的元素list.add(1,"javae... 继续阅读 >