
java基础
文章平均质量分 70
Alex_81D
修身,赚钱,助人,玩天下
展开
-
【编程规范】从阿里规约到阿里插件的使用和反思
最近在和团队的新同事一起协同开发的时候,发现有些代码写的真的不尽如人意,很多常规规范并没有遵循,在和同事沟通后,有感而发,小小总结一下代码规范,毕竟无规矩不成方圆,开发规范从小开始,养成良好的习惯。如果在公司开发过程中没有相应的强制代码规范工具,需要自我约束的同学,给大家推荐个好用的插件可以辅助自己规范编程。原创 2025-01-20 22:15:00 · 1573 阅读 · 0 评论 -
【开发规范01】-华为编程军规
本文提出了一系列编程规范,旨在提升代码质量和研发人员价值。规范包括:避免使用无意义数字常量,限制方法参数不超过五个,避免返回null而应抛异常或特例对象,确保资源释放,细化异常处理,避免条件分支遗漏,覆写equals()时同时覆写hashCode(),禁止循环中创建新线程而使用线程池,精确计算时避免浮点数而用BigDecimal或整型。此外,强调开发效率和协作,建议小任务提交、遵循命名规范、避免过度设计、减少状态保存、使用日志调试、添加必要注释、跨功能审查代码及及时沟通解决问题,以提升项目质量原创 2024-09-12 23:15:00 · 1252 阅读 · 0 评论 -
ObjectMapper的使用和使用过程中引发的思考
在Java开发中,ObjectMapper是Jackson库的核心类,用于将Java对象序列化为JSON字符串,或者将JSON字符串反序列化为Java对象。由于其功能强大且易于使用,ObjectMapper成为了处理JSON数据的常用工具,它可以帮助我们快速的进行各个类型和Json类型的相互转换。原创 2024-06-27 23:15:00 · 2168 阅读 · 0 评论 -
【JVM】JVisualVM的介绍、使用和GC过程
VisualVM介绍VisualVM 是的profile子项目,已在JDK6.0 update 7 中自带,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。在JDK_HOME/bin(默认是C:\Program Files\Java\jdk1.6.0_13\bin)目录下面,有一个jvisualvm.exe文件,双击打开,从UI上来看,这个软件是基于NetBeans开发的了。原创 2024-06-13 21:45:00 · 1674 阅读 · 0 评论 -
记一次接口交互is开头的属性序列化后“is”丢失问题
查看发现该字段为boolean类型的isIsRefresh,但传给第三方json串里字段变为了isRefresh,发现类中定义的字段确实为isIsRefresh,与设计文档上相同,并非定义错误。因此猜测是在服务传递时导致is丢失。对于这个问题,我还是要说一句:既然有规范请严格按照规范,起这种命名害人害己,请大家谨记,以下是阿里开发规范,仅供参考!原创 2023-12-26 21:45:00 · 1983 阅读 · 3 评论 -
线程池是什么?如何合理的配置线程池核心线程数?
CPU密集任务只有在真正的多核CPU上才可能得到加速(通过多线程),而在单核CPU上,无论你开几个模拟的多线程该任务都不可能得到加速,因为CPU总的运算能力就那些。所以在IO密集型任务中使用多线程可以大大的加速程序运行,即使在单核CPU上,这种加速主要就是利用了被浪费掉的阻塞时间。CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。由于IO密集型任务线程并不是一直在执行任务,则应配置尽可能多的线程,如。IO密集型,即该任务需要大量的IO,即大量的阻塞。阻塞系数在0.8~0.9之间。原创 2023-10-31 22:15:00 · 1023 阅读 · 0 评论 -
java实现Http请求的几种常用方法
在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适。很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信、天气等)。若是普通java工程推荐使用OkHttpClient,若是spring工程推荐使用RestTemplate。,若是springcloud微服务可以用openFeign或Dubbo原创 2025-02-10 23:15:00 · 1360 阅读 · 0 评论 -
Java实现业务异步的几种方案
正常操作我们需要web发起请求调用,等到三方接口返回后然后将结果返给前端应用,但是在某些操作中,如果某一个业务非常耗时,如果一直等其他业务响应后再给前端,那不仅给用户的体验极差,而且可能会出现服务卡死的情况,因此在这里做一下相关线程操作的记录,以供后续参考!原创 2023-10-18 23:15:00 · 1885 阅读 · 0 评论 -
Java中的抽象类和接口(Abstract Class and Interface)的区别
在面向对象的编程中,对象都是通过class来描述的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类需要用abstract关键字来定义,表示一个类为抽象类,抽象类是对一类事物共性的一种抽象,实现公共的行为,并且构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。抽象类中用abstract表示就是个抽象类,一般都有抽象方法,如果定义没有抽象方法的抽象类,在语法层面是可行的,但是实际并很少这么用。原创 2023-10-10 22:45:00 · 385 阅读 · 0 评论 -
不掌握这些坑,你敢随便用BigDecimal吗?
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于不需要准确计算精度的数字,可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以如果需要精确计算的结果,则必须使用BigDecimal类来操作。转载 2023-08-17 22:15:00 · 210 阅读 · 0 评论 -
Stream流详细入门教程 (包含练习题)
stream流操作是Java 8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的API和新增Stream操作。常用于集合对象的计算,与Lambda表达式结合,可以提高编程效率、间接性和程序可读性。转载 2023-05-10 00:00:00 · 1142 阅读 · 1 评论 -
JAVA识别PDF和OFD电子发票并解析为java对象
上一篇我们说了java实现电子发票中的发票税号等信息识别的几种可用方案,最后博主选取了识别文件二维码的方式,而且文章最后也说了,这种有局限性,去到的信息有限,而且针对OFD格式也得继续想办法,那接下来,我们就说一下怎么处理这个问题,并且如何去识别OFD格式的发票文件中的内容原创 2023-03-01 23:07:49 · 8726 阅读 · 7 评论 -
Springboot获取文件内容,将MultipartFile转File方法
文件上传以前是噩梦一样的存在,觉得很少麻烦,后来仔细研究后发现通过前端传文件去调取后端接口并不是特别复杂,接下来我详细说一下通过接口的方式接收前端传过来的文件,并且解析文件中内容的方法。主要写一下怎么转换并获取内容。再说说怎么把txt文件内容和excel读取出来处理。原创 2023-02-15 00:15:00 · 25219 阅读 · 4 评论 -
java实现电子发票中的发票税号等信息识别的几种可用方案
需要做一个电子发票中发票税号的识别,于是乎就开始去调研看有哪些方案,最先想到的就是OCR文字识别,自己去画框训练模型去识别税号等相关信息话不多说开整思路:思路一:百度AI平台去直接调用思路二:自己基于模型训练思路三:基于本地化代码识别票据中信息这几种思路接下来我都会详细展开说,且每种方式的优缺点博主也会说清楚,仅供大家参考原创 2023-02-09 22:43:53 · 29397 阅读 · 22 评论 -
浅谈Java分布式与集群
在日常操作中,相信很多人在怎么理解Java分布式与集群问题上存在疑惑,今天就大概说说,不注意听,觉得两个可能是同一个东西,其实这个是两个概念。一句话概括:分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。把一个业务,拆分成多个业务,然后部署到不同的服务器上,这就是分布式。公司的网上商城,拆分成两个系统:商品系统和支付系统,用户在商品系统上完成浏览商品、加入购物车的动作,在支付系统上完成支付动作(当然用户是无法感知到是在两个系统上完成的操作),这就是分布式。原创 2022-10-12 11:25:58 · 3605 阅读 · 0 评论 -
window环境下安装大数据环境
window环境下安装大数据环境原创 2022-08-30 14:05:54 · 796 阅读 · 0 评论 -
Java dom4j生成和解析XML
使用方式:在pom.xml中导入dom4j对应的jar<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version></dependency>优点:dom4j使Java生成和解析XML灵活性变高,并且代码易于维护API操作类:Document:表示原创 2022-03-11 10:48:24 · 942 阅读 · 0 评论 -
SpringBoot 项目打包后不加载 application.properties 配置文件
今天打完项目jar,Linux启动时,发现总是报错,找不到application.properties配置文件:class path resource [applicationContext.xml] cannot be opened because it does not exist推测原因是打包未扫描(没有找到)到这个配置文件,修改办法如下:添加pom文件中的打包资源即可:<resources> <!--如果pro和xml文件放在源码java包下,也需要编译--原创 2022-01-27 11:18:35 · 3982 阅读 · 0 评论 -
运行flyway报错, MySQL 5.6 is no longer supported by Flyway Community Edition,问题处理
org.flywaydb.core.internal.license.FlywayEditionUpgradeRequiredException: Flyway Enterprise Edition or MySQL upgrade required: MySQL 5.6 is no longer supported by 。Flyway Community Edition, but still supported by Flyway Enterprise Edition.今天运行flywa.原创 2022-01-27 11:02:07 · 7559 阅读 · 1 评论 -
java将hdfs上的图片转为base64返回给前端
public static void main(String[] args) throws IOException { String hdfsPath = "hdfs://192.168.0.0:9200/tmp/test/tupian.jpg"; Path path = new Path(hdfsPath); Configuration configuration = new Configuration(); FSDataInputStream fsDataInputStream = null;.原创 2021-11-30 11:08:49 · 1614 阅读 · 0 评论 -
Java 基础之 Java IO
1.1 字节流和字符流使用情况:字符流和字节流的使用范围:字节流一般用来处理图像,视频,以及PPT,Word类型的文件。字符流一般用于处理纯文本类型的文件,如TXT文件等,字节流可以用来处理纯文本文件,但是字符流不能用于处理图像视频等非文本类型的文件。 FileReader fr = new FileReader("C:\\Users\\admin\\Desktop\\4\\demo.txt"); BufferedReader bf = new BufferedReader(fr); //..转载 2021-02-23 09:14:28 · 155 阅读 · 0 评论 -
java 将文件或者字符串写入zip及浏览器页面显示
文件直接写入zip,包括层级目录1.这个工具类的功能为:(1)可以压缩文件,也可以压缩文件夹 (2)同时支持压缩多级文件夹,工具内部做了递归处理 (3)代码中提供了2个压缩文件的方法,一个的输入参数为文件夹路径,一个为文件列表,可根据实际需求选择方法。 (4)可以选择是否保留原来的目录结构,如果不保留,所有文件跑压缩包根目录去了,且空文件夹直接舍弃。注意:如果不保留文件原来目录结构,在碰到文件名相同的文件时,会压缩失败。 (5)碰到空的文件夹,也可以压缩 下面直接...转载 2021-02-22 14:12:05 · 616 阅读 · 0 评论 -
javaweb开发之get与post请求的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被Bo.转载 2021-02-20 16:49:47 · 442 阅读 · 0 评论 -
读取jar包里面文件夹下的所有文件
这块先抛出问题所在:当文件在resource中时,如果在本地直接读,那么是可以读到的,当打成jar包后,就得不到路径,对这个问题做如下总结:我们都知道springboot默认的方式是打包成jar包执行的,这个时候如果需要遍历某个路径下的所有文件夹和文件,按照我们常规的方式是使用File来处理,但是这里由于是jar包,所以使用File类会出现找不到路径的错误,本文介绍一种可以读取文件夹下所有内容的方式public static void main(String[] args) throws IO原创 2021-01-06 16:10:33 · 22752 阅读 · 1 评论 -
java读取文本文件内容
背景:需要读取文件中普通字符串,方法解读:java读取文本文件内容public class Chaifen { public static String readFileContent(String fileName) { File file = new File(fileName); BufferedReader reader = null; StringBuffer sbf = new StringBuffer(); try {原创 2020-10-16 14:57:25 · 1079 阅读 · 0 评论 -
【排序算法】九种排序算法的总结
1.排序算法的分类插入排序:直接插入排序、二分法插入排序、希尔排序。交换排序:冒泡排序、快速排序。选择排序:简单选择排序、堆排序。归并排序基数排序2.插入排序基本思想:依次遍历元素,在已排序的序列中找到合适的位置将当前遍历的元素插入,直到所有元素都已排序。方法:直接插入排序、二分插入排序、希尔排序(1)直接插入排序基本思想:把新的数据插入到已经排好的数据列中。(2)二分排序(折半插入排序)基本思想...转载 2018-04-09 10:18:17 · 313 阅读 · 0 评论 -
Could not initialize class sun.awt.X11GraphicsEnvironment异常处理
原因导致:经过Google发现很多人也出现同样的问题。从了解了X11GraphicEnvironment这个类的功能入手,一个Java服务器来处理图片的API基本上是需要运行一个X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。所以,问题肯定出在启动server时,未能实现X-Server功能。root用户未启动XServer,mm...原创 2020-03-25 13:34:22 · 1966 阅读 · 0 评论 -
java 读取hdfs上的文件内容
java 读取hdfs上的文件内容原创 2019-12-20 16:00:41 · 8609 阅读 · 2 评论 -
关于java 实体类与json 实体类集合与jsonArray的相互转换
最近项目中要多次使用到java 实体类与json 实体类集合与jsonArray的相互转换,接下来把遇到的问题和方法分享一下:原创 2019-10-23 17:03:14 · 5416 阅读 · 1 评论 -
利用反射遍历查询对象中所有属性的内容
实体类package com.sunwayworld.reflect;public class TetsObj { public TetsObj() { super(); } public TetsObj(String desc1, String desc2, String desc3, String desc4, String desc5, String desc6) {...原创 2019-08-26 15:56:37 · 404 阅读 · 0 评论 -
关于Map的几种遍历方式
Map之遍历:关于集合这块需要写的东西其实挺多的,集合有自己的顶级接口Collection,底下又有map和list两个接口,接下来我们谈一谈关于map集合方面的东西。map是java中非常常用的一种数据结构,提供get和put两个常用的方法;map虽然继承了Collection,但却没有实现Collection的Iterator 方法,自身没有迭代器来遍历元素接下来言归正传,对于map的遍历也是...原创 2018-03-16 10:16:29 · 534 阅读 · 0 评论 -
来看看你对Arrays.asList()认知有多少
在java语言中,把数组转换成List集合,有个很方便的方法就是List<String> list = Arrays.asList("a","b","c");但你可能不知道这样得到的List它的长度是不能改变的。当你向这个List添加或删除一个元素时(例如list.add("d");)程序就会抛出异常(java.lang.UnsupportedOperationException)...原创 2018-03-20 11:10:09 · 240 阅读 · 1 评论 -
四个概念详细分析servlet、filter、listener、interceptor的区别与联系
下面从几个方面阐述一下题目中四个概念的区别与联系: 《1》、概念 《2》、生命周期 《3》、职责 《4》、执行过程 一、概念: 1、servlet:servlet是一种运行服务器端的Java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服...转载 2018-05-17 09:38:25 · 380 阅读 · 0 评论 -
详细了解几种map:HashMap,LinkedHashMap,TreeMap
HashMap,LinkedHashMap,TreeMap都属于MapMap主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。HashMap HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。遍历时,取得数据的顺序是完全随机的。 HashMap最多只允许一条记录的键为Null;允许多条记录的...原创 2018-06-08 11:39:35 · 395 阅读 · 0 评论 -
JAVA基础--面试题1
JAVA中的几种基本类型,各占用多少字节? String能被继承吗?为什么?不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。平常我们定义的String str=”a”;其实和String str=new String(“a”)还是有差异的。前者默认调用的是String.valueOf来返回String实例对象,至于调用哪个则取决于你的赋值,比如...转载 2018-06-08 15:28:22 · 826 阅读 · 0 评论 -
关于tomcat 报错 找不到oracle.jdbc.driver.OracleDriver 的解决办法
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnec是由于<Resource name="jdbc/mydatasource" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver....原创 2018-08-14 16:19:34 · 6101 阅读 · 0 评论 -
理解 HashMap 加载因子 loadFactor
加载因子是表示Hsah表中元素的填满的程度.若:加载因子越大,填满的元素越多,好处是,空间利用率高了,但:冲突的机会加大了.反之,加载因子越小,填满的元素越少,好处是:冲突的机会减小了,但:空间浪费多了.冲突的机会越大,则查找的成本越高.反之,查找的成本越小.因而,查找时间就越小.因此,必须在 "冲突的机会"与"空间利用率"之间寻找一种平衡与折衷. 这种平衡与折衷本质上是数据结构中有名的"时-空"矛盾的平衡与折衷.原创 2019-03-06 09:48:45 · 865 阅读 · 1 评论 -
用java生成0-9之间的随机整数,并统计个数出现的次数
用java生成0-9之间的随机整数,并统计个数出现的次数。原创 2019-04-23 17:19:29 · 54955 阅读 · 2 评论 -
Java工程师入职——配置环境及安装开发工具
很多新人对于进入新公司,大部分都是从发新电脑新系统开始(你好,我是小娜,让我来帮你。。。。),电脑上各种开发环境都是从无到有,所以接下来小编从安装java到配置环境变量到eclipse等进行一系列环境开发开始,话不多说,让我们开始轻松的环境安装配置开始吧:一、肯定是先安装jdk:这个是我们java开始最基础的入门。JDK(Java Development Kit)是Java语言的软............原创 2019-06-11 22:56:33 · 5188 阅读 · 1 评论