java
文章平均质量分 78
java
sysu_lluozh
这个作者很懒,什么都没留下…
展开
-
【Java】Java8中的Stream
一、Stream的理解Stream是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等在Java8中Stream API作为数据渠道,用于操作数组或者集合等数据源。流本身是不存储数据的,只是移动数据,在移动过程中可能会对数据进行过滤,排序或者其它操作,但是,大多数情况下,流操作本身不会修改数据源,比如,对流排序不会修改数据源的顺序。它只是会创建一个新的流,其中包含原创 2022-05-12 08:26:16 · 1089 阅读 · 0 评论 -
【Java】spring事务的实现方式
一、编程式事务管理编程式事务管理,在代码中调用commit()、rollback()等事务管理相关的方法maven pom.xml文件<dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version></dependency&原创 2022-03-12 01:00:57 · 2943 阅读 · 2 评论 -
【架构】IO多路复用
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有:同步阻塞IO(Blocking IO)传统的IO模型同步非阻塞IO(Non-blocking IO)默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCKIO多路复用(IO Multiplexing)经典的Reactor设计模式,有时也称异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型异步IO(Asynchronous IO)经典的Proactor设计模式,也称为异步非原创 2022-03-10 00:46:55 · 208 阅读 · 0 评论 -
【java】批量插入数据库数据
在项目中往往需要一次向数据库中插入多条数据,如果使用for循环的方式插入,效率慢且资源消耗高接下来看看如何批量将数据写入数据库中一、DaoReportSampleDao.java文件import com.seewo.module.report.dto.ReportSampleReqDto;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Param;原创 2022-01-18 19:11:32 · 6044 阅读 · 2 评论 -
【Java核心技术】Vector、ArrayList和LinkedList的区别
在日常的工作中,能够高效地管理和操作数据是非常重要的。由于每个编程语言支持的数据结构不尽相同,比如我最早学习的 C 语言,需要自己实现很多基础数据结构,管理和操作会比较麻烦。相比之下,Java 则要方便的多,针对通用场景的需求,Java 提供了强大的集合框架,大大提高了开发者的生产力有关集合框架方面的问题:对比Vector、ArrayList、LinkedList有何区别?...原创 2021-08-31 08:45:28 · 126 阅读 · 0 评论 -
【Java核心技术】int和Integer的区别
Java虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以需要掌握原始数据类型和包装类等Java语言特性探讨的问题:int和Integer有什么区别?谈谈Integer的值缓存范围一、典型回答int是常说的整形数字,是Java的8个原始数据类型(Primitive Types:boolean、byte、short、char、int、float、double、long)之一Java语言虽然号称一切都是对象,但原始数据类型是例外Integer是int对应的包装类,它有一个原创 2021-08-31 00:16:44 · 279 阅读 · 0 评论 -
【Java核心技术】动态代理的原理
编程语言通常有各种不同的分类角度,动态类型和静态类型就是其中一种分类角度,简单区分就是语言类型信息是在运行时检查,还是编译期检查与其近似的还有一个对比,就是所谓强类型和弱类型,就是不同类型变量赋值时,是否需要显式地(强制)进行类型转换那么,如何分类Java语言呢?通常认为,Java是静态的强类型语言,但是因为提供了类似反射等机制,也具备了部分动态类型语言的能力言归正传,接下来的问题是:谈谈Java反射机制动态代理是基于什么原理?一、典型回答1.1 反射机制反射机制是Java语言提供的一种原创 2021-08-30 23:11:44 · 765 阅读 · 0 评论 -
【SpringBoot】项目中异常的捕获和处理
一般在开发中,会有业务异常和程序异常两种一、异常处理的意义程序中往往在try-catch异常的时候会进行重新抛出一个新的异常,如何捕获和处理异常在编码过程中具有重要的意义提高健壮性,提前对可能发生的异常情况预判处理提高稳定性和可用性如,预判网路异常然后在异常处理中进行重试利于错误恢复和错误处理,针对不同的异常进行不同的处理有利于发生异常时问题的排查和解决如,通过logger可以知道错误发生的地方、错误详情等信息如何处理异常信息可以提高代码的健壮性、稳定性和可用性等,接下来看看业务中如何进原创 2021-08-28 00:17:00 · 418 阅读 · 0 评论 -
【Java核心技术】String、StringBuffer和StringBuilder的区别
日常使用的字符串别看它似乎很简单,但其实字符串几乎在所有编程语言里都是个特殊的存在,因为不管是数量还是体积,字符串都是大多数应用中的重要组成相关的典型问题是:理解 Java 的字符串,String、StringBuffer和StringBuilder有什么区别?一、典型回答StringString是Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑它是典型的Immutable类,被声明成为final class,所有属性也都是final的。也由于它的不可变性,类似拼接原创 2021-08-27 08:48:10 · 173 阅读 · 0 评论 -
【Java核心技术】强引用、软引用、弱引用和幻象引用的区别
在Java语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,理解引用对于掌握Java对象生命周期和JVM内部相关机制非常有帮助相关的典型问题是:强引用、软引用、弱引用、幻象引用有什么区别?他们的具体使用场景是什么?一、典型回答不同的引用类型,主要体现的是:对象不同的可达性(reachable)状态对垃圾收集的影响1.1 强引用强引用(Strong Reference),就是最常见的普通对象引用垃圾收集的影响只要还有强引用指向一个对象就能表明对象原创 2021-08-27 00:22:51 · 268 阅读 · 0 评论 -
【Java核心技术】Exception和Error的区别
Java语言在设计之初就提供相对完善的异常处理机制,这种机制大大降低了编写和维护可靠程序的门槛,如今异常处理机制已成为编程语言的标配有两个问题:对比Exception和Error运行时异常与一般异常有什么区别?一、典型回答1.1 Exception和Error都继承Throwable类在Java中只有Throwable类型的实例才可以被抛出throw或者捕获catch,它是异常处理机制的基本组成类型1.2 不同异常情况的分类Exception和Error体现Java平台设计者对不同异常情原创 2021-08-26 08:31:47 · 895 阅读 · 0 评论 -
【java】泛型类Class<T>
一、什么是泛型泛型,一种不确定的数据类型,顾名思义就是广泛的数据类型,也就是说什么数据类型都可以类、接口和方法代码可以应用于非常广泛的类型,代码与它们能够操作的数据类型不再绑定在一起,同一套代码,可以用于多种数据类型,这样,不仅可以复用代码,降低耦合二、不同类型参数在方法的类型参数有两种不同的运用方式2.1 使用定义在类声明中的类型参数2.1.1 定义泛型类在类名后方申明泛型 T,接着就可以在成员变量、方法中使用泛型public class User<T> { private原创 2021-04-01 08:39:11 · 1499 阅读 · 0 评论 -
【java】BeanUtils.populate()的使用
一、方法解释BeanUtils位于org.apache.commons.beanutils.BeanUtils下BeanUtils.populate(Object bean, Map properties)populate是BeanUtils工具类的一个方法1.1 作用这个方法会遍历map<key, value>中的key,如果bean中有这个属性,就把这个key对应的value值赋给bean的属性1.2 使用在使用这个方法之前定义一个 JavaBean通过该方法将map中的原创 2021-03-22 08:43:59 · 5810 阅读 · 0 评论 -
【Java基础】Java IO流处理
一、IO概述1.1 定义IO即in和out,也就是输入和输出,指应用程序和外部设备之间的数据传递,常见的外部设备包括文件、管道、网络连接流(Stream)指数据在计算机各部件之间的流动,是一个抽象的概念,是指一连串的数据(字符或字节),是以先进先出的方式发送信息的通道使用当程序需要读取数据的时候,就会开启一个通向数据源的流(数据源可以是文件,内存,或是网络连接),同样,当程序需要写入数据的时候,就会开启一个通向目的地的流可以想象数据好像在这其中"流"动一样1.2 特性先进先原创 2021-03-04 08:51:43 · 390 阅读 · 3 评论 -
【SpringBoot】AOP应用实例
什么是AOPAOP(Aspect Oriented Programming),即面向切面编程众所周知,OOP(面向对象编程)通过的是继承、封装和多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。OOP从纵向上区分出一个个的类来,而AOP则从横向上向对象中加入特定的代码AOP采用"横切"的技术,剖解开封装的对象内部,将影响了多个类的公共行为封装到一个可重用模块。将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和原创 2020-12-16 13:14:26 · 1360 阅读 · 0 评论 -
【java线程】线程池创建方式及对比
java创建线程池的四种方式:newCachedThreadpool创建一个可缓存的线程池,如果线程池长度超过处理需求,可灵活回收空闲线程,若无可回收,则新建线程newFixThreadPool创建一个固定线程数的线程池,可控制线程最大并发数,超出的线程会在队列中等待newScheduledThreadPool创建一个定时线程,支持定时及周期性任务执行newSingleThreadExecutor创建一个单线程化的线程池,它只唯一的工作线程来执行任务,保证所有任务按照指定顺序原创 2020-12-09 20:32:46 · 233 阅读 · 0 评论 -
【java线程】线程创建方式及对比
java创建线程的三种方式:继承Thread类创建线程类实现Runnable接口通过Callable和Future创建线程一、继承Thread类创建线程类定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体(线程体)创建Thread子类的实例,即创建了线程对象调用线程对象的start方法来启动该线程public class FirstThreadTest extends Thread{ int i = 0;原创 2020-12-09 20:23:49 · 189 阅读 · 0 评论 -
【SpringBoot】application配置文件及注入
全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录使用Spring Initializr方式构建Spring Boot项目时,会在resource目录下自动生成一个空的application.properties文件,Spring Boot项目启动时会自动加载applicat原创 2020-12-05 15:11:07 · 2288 阅读 · 0 评论 -
【jar】Java Runtime recognizes class file versions up to 52.0
UI自动化平台二次开发开源项目 daxiang agent 做为设备连接和任务执行的agent模块开始使用时服务部署在windows环境,但是发现在两台设备连接并使用时cpu直接打满,故考虑将服务部署在一台18c的linux设备,并针对性的优化性能在linux中安装java8、appiun环境后,在mac中打包,并运行 java -jar agent.5.0.jar,发现在执行用例时抛出异常如下:核心的报错信息Exception in thread "main" java.lang.Unsuppo原创 2020-11-11 20:57:23 · 16492 阅读 · 0 评论 -
【SpringBoot】数据库多数据源
两个项目间数据同步的需求,需要同时操作多个库多需求扫描数据源component中创建不同的文件DataSourceDefault@Configuration@MapperScan(basePackages = {"com.xxx.dao"}, sqlSessionFactoryRef = "sqlSessionFactory2")public class DataSourceDefault { @Bean(name = "dataSource") @ConfigurationP原创 2020-07-02 20:05:44 · 1848 阅读 · 0 评论 -
【SpringBoot】jar包getFile问题
获取文件路径的代码File path = null;try { path = new File(ResourceUtils.getURL("classpath:").getPath());} catch (Exception e) { e.printStackTrace();}本地调试运行均没有任何问题,打成jar包后部署到服务器上报错FileNotFoundException使用绝对路径或者使用ResourceUtils.getFile等方式均同样出现以上问题错误原因:R原创 2020-07-02 13:41:57 · 430 阅读 · 0 评论 -
eclipse的快捷键
(1)Ctrl+Space 说明:内容助理。提供对方法,变量,参数,javadoc等得提示, 应运在多种场合,总之需要提示的时候可先按此快捷键。 注:避免输入法的切换设置与此设置冲突 (2)Ctrl+Shift+Space 说明:变量提示 (3)Ctrl+/ 说明:添加/消除//注释,在eclipse2.0中,消除注释为Ctrl+\ (4)Ctrl+Shift+/ 说明:转载 2015-10-09 20:07:50 · 447 阅读 · 0 评论 -
【Socket】Java 多线程服务器(二)
在(一)中实现了单线程的客户、服务端的连接和数据发送接收多线程服务器应用多线程来实现服务器和多客户端之间的通信 基本步骤 1. 服务器端创建ServerSocket,循环调用accept()等待客户端连接 2. 客户端创建一个socket并请求和服务器端连接 3. 服务器端接收客户端请求,创建socket与该客户建立专线连接 4. 建立连接的两个socket在一个单独的线程上对话原创 2016-03-23 13:17:41 · 442 阅读 · 0 评论 -
Java 解析java程序的过程图
Java 解析java程序的过程图转载 2015-10-14 15:27:05 · 508 阅读 · 0 评论 -
java中字符串操作方法整理
一.Java字符串类基本概念 在JAVA语言中,字符串数据实际上由String类所实现的。Java字符串类分为两类:一类是在程序中不会被改变长度的不变字符串;二类是在程序中会被改变长度的可变字符串。Java环境为了存储和维护这两类字符串提供了 String和StringBuffer两个类1.创建字符串 例: String str=new(”This is a String”); 或者 Stri转载 2015-10-14 14:38:23 · 543 阅读 · 0 评论 -
JVM内存管理的机制
1.JVM内存管理的机制 内存空间划分为: Sun JDK在实现时遵照JVM规范,将内存空间划分为堆、JVM方法栈、方法区、本地方法栈、PC寄存器 堆: 堆用于存储对象实例及数组值,可以认为Java中所有通过new创建的对象的内存都在此分配,Heap中对象所占用的内存由GC进行回收,在32位操作系统上最大为2GB,在64位操作系统上则没有限制JVM方法栈: 为线程私有,转载 2015-10-14 09:18:03 · 446 阅读 · 0 评论 -
JAVA反射机制获取类和方法
问题:可以通过String类型的方法名调度方法么?可以获得特定的类么?比如当前类,隔壁的类,类的新实例,当前实例?多态的函数具有相同的名字、不同的参数类型,如何区分呢?如何获取指定类的参数类型等信息?带着这些问题,我做了一些实践。总结如下:答案:Java提供反射机制,java.lang.reflect.*,可以实现包含不限于以上功能。下面是一些常用的通过反射获取类、转载 2015-10-14 17:35:05 · 2371 阅读 · 0 评论 -
详细介绍java中的数据结构
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMapCollection接口转载 2015-10-14 16:14:58 · 305 阅读 · 0 评论 -
JAVA字符串的方法
length() 字符串的长度 例:char chars[]={‘a’,’b’.’c’}; String s=new String(chars); int len=s.length(); charAt() 截取一个字符 例:char ch; ch=”abc”.charAt(1); 返回’b’ getChars() 截取多个字符转载 2015-10-14 14:25:34 · 330 阅读 · 0 评论 -
java反射机制学习
反射机制就是java语言在运行时拥有一项自观的能力。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备。下面具体介绍一下java的反射机制。这里你将颠覆原来对java的理解。 Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method;其中class代表的时类对象,Constructor-类的构造器对象,Field-类的属性对转载 2015-10-10 10:54:43 · 463 阅读 · 0 评论 -
Java基础知识总结
写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。demo4,该技术什么时候用?test。转载 2015-10-28 16:11:20 · 391 阅读 · 0 评论 -
Java常用的接口、类、方法
Java常用的接口、类、方法 java.lang.String String类无可争议的获得冠军,应该没有人会否认这一点。这是一个最终类,用于创建/操作不可变的字符串文字java.lang.System System类的使用取决于你工作的项目类型。你可能没有在项目中使用过它,但它仍然是受欢迎的Java类之一。这是一个不能被实例化的工具类。这个类的主要用途是访问标准输入、输出、环境变量等等ja转载 2015-10-14 15:21:17 · 4318 阅读 · 0 评论 -
结构化程序设计和面向对象程序设计的特点及优缺点
结构化程序设计: 采用了模块分解与功能抽象和自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子程序,便于开发和维护。它的重点在于把功能进行分解。但是由于在实际开发过程当中需求会经常发生变化,因此,它不能很好的适应需求变化的开发过程。结构化程序设计是面向过程的面向对象程序设计: 以需求当中的数据作为中心,来进行设计,具有良好的代码重用性 封装性:转载 2015-10-13 12:50:49 · 18533 阅读 · 0 评论 -
编写一个函数,用于交换两个变量的值
C语言(地址传递): void Swap(int *a,int *b) { int temp; int temp=*a; int *a=*b; int *b=temp; }java语言(值传递): int num1=10; int num2=8; int temp=0 temp=num1; //将num1的值赋给中间变量temp num1=num2; /转载 2015-10-13 12:58:33 · 7868 阅读 · 0 评论 -
线程基础知识
1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒2) 线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线转载 2015-10-14 13:04:43 · 310 阅读 · 0 评论 -
【Socket】Java Socket通信(一)
前段时间在网上学习了Java Socket的应用编程。端口用于区分不同应用程序端口号范围0~65535,其中0~1023为系统所保留IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP的基础http:80 ftp:21 telnet:23Java中的网络支持针对网络通信的不同层次,Java提供的网络功能有四大类Ine原创 2016-03-21 10:20:49 · 727 阅读 · 0 评论 -
Netty开源库的初步使用
之前用Java socket实现模拟remote客户端进行并发登录,但断线重连、连接超时、网络闪断、网络拥塞和读写超时等实现较为麻烦。现学习使用netty开源库,在netty开源库基础上实现业务功能。 netty是JBOSS针对网络开发的一套应用框架,也是在NIO的基础上发展起来的。netty基于异步的事件驱动,具有高性能、高扩展性等特性,它提供了统一的底层协议接口,使得开发者从底层的网络协议(如原创 2016-01-18 21:05:52 · 3586 阅读 · 0 评论 -
Java开发中IO流介绍
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类•根据处理数据类型的不同分为:字符流和字节流•根据数据流向不同分为:输入流和输出流 一、流的分类1、按功能分 读取流:Input转载 2015-10-27 18:21:19 · 370 阅读 · 0 评论 -
Java Web架构
说明: Web负载均衡和应用负载均衡使用Nginx Web服务器用Tomcat 应用服务器可选Jboss、glassfish、tomcat 数据库Mysql Session缓存使用TokyoTyrant(需要持久化) 应用缓存使用Memcached Web服务器通过Hessian远程调用访问应用服务器 Web层使用Spring3 MVC通过Hessian调用远程应用转载 2015-10-28 16:25:22 · 394 阅读 · 0 评论 -
Java反射机制初涉
一、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息二、哪里用到反射机制 有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码, Class.forName(“com.mysql.jdbc.Driver.c转载 2015-10-14 17:13:50 · 340 阅读 · 0 评论