Java
文章平均质量分 77
teayear
《Java编程讲义》作者,华为认证讲师,微软MVP,ORACLE认证专家称号,,主要研究方向为JAVAEE、人工智能、AI/VR、算法 、机器视觉,曾经服务过中国铝业、中国烟草等央企,欢迎合作!
展开
-
JUnit+EclEmma进行覆盖测试
EclEmma简介现在IT开发人员比以往任何时候都更加关注测试的重要性,没有经过良好测试的代码更容易出问题。在极限编程中,测试驱动开发已经被证明是一种有效提高软件质量的方法。在测试驱动的开发方式中,软件工程师在编写功能代码之前首先编写测试代码,这样能从最开始保证程序代码的正确性,并且能够在程序的每次演进时进行自动的回归测试。测试对于软件产品的成败起着至关重要的作用,在极限编程领域,甚至有人提议任何原创 2017-10-09 12:01:59 · 1631 阅读 · 0 评论 -
java宠物店多态源代码
Pet类package com.aaa.adv;/** * 父类:宠物类 * @author 张晨光 * */public class Pet { //成员变量 private String name; private int health; //public Pet(){} //构造 public Pet(String name, int health) { su...原创 2018-07-06 09:44:49 · 2083 阅读 · 0 评论 -
BeanUtils注意事项
一、简介: BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。二、用法: BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyProperties(...原创 2018-07-24 11:55:34 · 830 阅读 · 0 评论 -
preparedStatement问号的理解
/** * 根据表名查询总条数; * @param tableName * @return */ public int getCount(String tableName){ String sql="select count(*) from "+tableName; Connection conn=getConnec...原创 2018-09-21 11:09:12 · 1911 阅读 · 1 评论 -
取消myeclipse2017的Dashboard页面
取消myeclipse2017的欢迎页面把右下角的Don't show dashboard on startup勾上就OK了原创 2019-08-28 16:34:31 · 1971 阅读 · 2 评论 -
JAVA面试题之三分布式和微服务的区别是什么?
难度指数:3星考察频率:50%开发年限:3年左右二者是隶属于不同的概念。原创 2024-02-02 07:30:46 · 748 阅读 · 0 评论 -
JAVA面试题之四谈谈你对RPC框架的理解
难度指数:4星考察频率:55-60%开发年限:3年以上。原创 2024-02-02 07:23:07 · 517 阅读 · 0 评论 -
JAVAEE面试题之一HASHMAP精讲
特点1.高频面试2.力求精深3.贴近企业4.迭代升级。原创 2023-12-26 21:01:46 · 731 阅读 · 0 评论 -
Mybatis-Plus讲义及实操教程
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发 提高效率而生。该框架由baomidou(苞米豆)组织开发并且开源的。官网 :https://baomidou.com/github地址: https://github.com/baomidou/mybatis-plus码云地址:https://gitee.com/baomidou/mybatis-plus。原创 2023-12-19 23:22:55 · 1276 阅读 · 0 评论 -
Nacos-服务发现与配置管理v1.0
目前市面上用的比较多的服务发现中心有:Nacos、Eureka、Consul和Zookeeper。对比项目NacosEurekaConsulZookeeper一致性协议支持AP和CP模型AP模型CP模型CP模型健康检查Keep Alive负载均衡策略权重/metadata/SelectorRibbonFabio雪崩保护有有无无自动注销实例支持支持不支持支持访问协议HTTP/DNSHTTPHTTP/DNSTCP监听支持支持支持支持支持。原创 2023-12-19 23:12:09 · 1050 阅读 · 0 评论 -
极速学习SSM之SpringMVC笔记
MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器MVC的工作流程:用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller原创 2023-12-10 23:26:22 · 667 阅读 · 0 评论 -
es使用客户端,“grunt” 不是内部或外部命令,多种解决方法
2、上面的用户变量 ,新建-> 变量名:NODE_PATH -> 变量值:C:\USER\Administrator\AppData\Roaming\npm\node_modules ->确定。如果上述方法还不行,去F:\关山资料\ES\elasticsearch-head-master下的node_modules查看是否有grunt等库,如果有,则证明问题不在这里。”grunt“不是内部或外部命令,也不是可运行的程序 或批处理文件。1、桌面->计算机->属性->高级系统设置 -> 高级->环境变量。原创 2023-11-17 15:17:19 · 704 阅读 · 0 评论 -
Postman启动问题:Could not open Postman
个人装了PostMan和PostManCanary二个版本,所以每个目录会有2个PostMan开头的文件夹。细心的朋友会发现,右下角 会经常出现防火墙关闭等提示信息,表示该程序,在向外链接。Postman启动问题:Could not open Postman。状态,在单击Postman之后一直在转圈圈,无法正常启动。原创 2023-11-17 15:12:58 · 2234 阅读 · 0 评论 -
Spring整合redis的key时出现\xac\xed\x00\x05t\前缀问题
是转化后的ASCII码值对应字符,对应16进制是0x2d(10进制是45,样例abcd🔤xxxxxx:passport:associated🔑29708的字符数就是45,1个字符1个字节,字节数也是45)。由上面的描述可知,乱码前缀中\xac\xed\x00\x05是固定的,t在String类型情况是不变的,后面2个位(样例\x00-)是数据的字节数,是随key动态变化的。key长度65545时,乱码为\xac\xed\x00\x05|\x00\x00\x00\x00\x00\x01\x00\x09。原创 2023-11-13 12:30:24 · 2172 阅读 · 0 评论 -
JAVA获取30天或某段范围日期的方法
然后,我们获取当前日期并创建一个空的列表来存储日期字符串。DayOfWeek getDayOfWeek 得到当前日期是星期几,作为DayOf类的一个实例返回,调用getValue来得到1~7之间的一个数,表示这是星期几,1表示星期一,7表示星期日。接下来,我们使用循环来生成最近30天的日期。在每次迭代中,我们取当前日期,减去i天,并将其格式化为指定格式的字符串。int getYear()/int getMonthValue()/int getDayOfMonth() 得到当前日期的年、月和日。原创 2023-10-20 11:00:25 · 1194 阅读 · 1 评论 -
常量&变量习题答案
开发提示:定义变量不赋值的格式。原创 2023-08-23 08:57:25 · 142 阅读 · 0 评论 -
数组习题答案
模拟大乐透号码:代码实现,效果如图所示:开发提示:参考答案:第二题:需求实现打印扑克牌.代码实现,效果如图所示:开发提示:第三题:需求实现模拟在一副牌中,抽取第1张,第5张,第50张扑克牌。代码实现,效果如图所示:第四题:需求实现统计字符代码实现,部分效果如图所示:开发提示:参考答案:第五题:需求实现统计高于平均分的分数有多少个。代码实现,效果如图所示:参考答案:定义sym方法,判断数组中的元素值是否对称.代码实现,效果如图所示:开发提示:参考答案:定义equal原创 2023-08-23 08:53:04 · 323 阅读 · 0 评论 -
方法重载习题答案
语法点:方法定义,方法重载按步骤编写代码,效果如图所示:编写步骤:参考答案:第二题:语法练习语法点:方法定义,if按步骤编写代码,效果如图所示:编写步骤:参考答案:第四题:需求实现定义showColor方法,根据英文单词,输出对应的颜色。代码实现,效果如图所示:参考答案:第五题:需求实现定义getValue方法,获取三个数中的最值,能够通过字符串,指定获取最大值或者最小值。代码实现,效果如图所示:开发提示:参考答案:第六题:需求实现定义printX方法,打印原创 2023-08-23 08:49:02 · 135 阅读 · 0 评论 -
day02_springboot综合案例
查询订单,要把订单对应的产品也要查出来。原创 2023-07-25 23:23:55 · 237 阅读 · 0 评论 -
ChatGPT使用技巧和实践
最终依靠AI生成了可以实践的代码,中而言之,AI还是非常智能的辅助工具,在使用的时候,要当中它给你挖坑啊~当面的代码是AI,自己鼓捣出来的,要学会甄别哦。在工作使用当中,需要使用到GPT,目前使用的是浏览器端的WeTab。由于使用到哈希表的讲解,需要Ai帮我们讲下哈希表;AI具有及时纠错功能,继续瞎写中。请写出HashMap和Hashtable的区别。请问HashMap在扩容的时候,一次增加都少?请使用图示的方式,给我讲一下链表法。你好,请给我讲一下,什么是哈希表。下面是给AI的提问和交互。原创 2023-07-25 16:18:13 · 1318 阅读 · 0 评论 -
Druid连接池技术实践
即在程序初始化的时候创建一定数量的数据库连接,用完可以放回去,下一个在接着用,通过配置连接池的参数来控制连接池中的初始连接数、最小连接、最大连接、最大空闲时间这些参数保证访问数据库的数量在一定可控制的范围类,防止系统崩溃,使用户的体验好。连接池中提前预先建立了多个数据库连接对象,然后将连接对象保存到连接池中,当客户请求到来时,直接从池中取出一个连接对象为客户服务,当请求完成之后,客户程序调用close()方法,将连接对象放回池中。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。原创 2023-05-26 15:45:04 · 1104 阅读 · 0 评论 -
HashMap源码集萃
4、扩容方法-resize。原创 2023-05-07 23:18:37 · 160 阅读 · 1 评论 -
redis笔记第一次课
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,是一款高性能的NOSQL系列的非关系型数据库NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。原创 2023-05-07 22:04:22 · 531 阅读 · 0 评论 -
Session&Cookie
http协议是基于请求与响应的无状态协议,但是进行使用时,通常会进行多次的请求与响应,将多次的请求与响应当做一个会话(浏览器窗口没有关闭)原创 2023-03-22 00:35:27 · 233 阅读 · 0 评论 -
ServletRequest&ServletResponse
Request和Response课程目标1.理解什么是Request和Response2.理解Reqest获取请求信息3.掌握使用Request域对象共享数据4.使用Response设置响应信息5.掌握重定向。原创 2023-03-22 00:29:37 · 327 阅读 · 0 评论 -
idea配置tomcat使用
IDEA 全称IntelliJ IDEA,是。原创 2023-03-16 21:01:04 · 1547 阅读 · 0 评论 -
异常 The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved
将修改为。原创 2023-03-10 01:27:39 · 190 阅读 · 0 评论 -
Http协议&Tomcat使用
HyperTextTransferProtocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。http是应用层基于请求与响应的无状态传输协议。原创 2023-03-08 01:31:16 · 437 阅读 · 0 评论 -
JDBC课堂笔记
【代码】JDBC课堂笔记。原创 2023-02-21 21:31:13 · 188 阅读 · 0 评论 -
JDBC连接池&JDBCTemplate课堂笔记
【代码】JDBC连接池&JDBCTemplate课堂笔记。原创 2023-02-21 21:30:06 · 173 阅读 · 0 评论 -
JAVA保姆式JDBC数据库免费教程之02-连接池技术
Spring JDBC Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发(后面我们专门讲spring框架。原创 2023-02-20 22:36:19 · 432 阅读 · 0 评论 -
张晨光-JAVA零基础保姆式技术教程之-事务
一个事务读取另外一个提交过的数据。造成另外一个事务,多次读取的【内容】不一致,数据的内容的改变。4:串行化的可以避免所有的问题。数据库让其他的事务进行等待,等待一个事务结束之后,这个事务再去操作。一个事务读取另外一个事务已经提交的数据。但是这里面强调的数据数目的改变。一个事务一事务的执行,只上一个事务结束了,另一个事务才可以操作,避免了所有问题。一个事务一事务的执行,只上一个事务结束了,另一个事务才可以操作,避免了所有问题。一个事务读取了另外一个事务没有的提交的数据。由数据事务的并发造成的问题。原创 2023-02-19 08:59:49 · 460 阅读 · 0 评论 -
张晨光-JAVA零基础保姆式JDBC技术教程
是官方(sun公司)定义的一套操作所有关系型数据库的规则(接口)。我们可以使用这套接口(JDBC)编程,运行时的代码其实是驱动jar包中的实现类。PreparedStatement进行了预编译处理,当下次执行相同的sql,sql就不会再编译了,比Statement的效率高。业务场景:当需要向数据库中发送一批sql时,就可以用jdbc的批处理机制,以提升执行效率,避免向数据库一条条的发送。SUN公司为**了简化、**统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。原创 2023-02-18 09:26:44 · 523 阅读 · 0 评论 -
Annotation type expected 预期注释类型
已经添加了Junit包的依赖,在之后标注测试类仍然显示Annotation type expected。错误原因:类名不能与关键字一样,所以将类名修改一下即可。原创 2023-02-15 17:14:37 · 878 阅读 · 0 评论 -
day23-xml解析
Extensible Markup Language 可扩展标记语言可扩展:标签都是自定义的。规定xml文档的书写规则jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。原创 2023-01-17 14:10:20 · 784 阅读 · 0 评论 -
JAVA零基础小白入门上手教程之day22-JDK新特性
默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。public default 返回值类型 方法的名称(参数列表) {方法体 }//接口的默认方法 public default void fly() {System . out . println("天上飞");} }// default 可以选择是否重写,也可以根据实际需求进行重写 /*@OverrideSystem.out.println("自由自在的飞");*/ }原创 2023-01-17 14:09:50 · 891 阅读 · 0 评论 -
day21-反射&枚举
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;对于这种动态的获取信息以及动态调用对象的方法的功能称为:java语言的反射机制。反射理解:可以通你这个对象拿到字节码文件,通过子节码文件还原到类的本身(也就是说你拿到类的Class对象去使用这个类的成员方法,成员变量,构造方法)是指将变量的值一一的列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。枚举格式。原创 2023-01-17 14:09:09 · 609 阅读 · 0 评论 -
day20-网络编程
三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。第一次握手,客户端向服务器端发出连接请求,等待服务器确认。第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。第三次握手,客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNtRuq7X-1673765293974)(assets/4_tcp.jpg)]原创 2023-01-15 14:48:33 · 507 阅读 · 0 评论 -
Thread的基本方法(3)-yield方法的分析与实例说明
在[线程A]的run()方法中,调用了Thread.yield(),提示CPU,愿意让出CPU资源,让其他同等优先级基本的线程进行运行。由于线程退让时,CPU的具体情况多种多样,所以线程退让有两种结果:退让被忽略、退让成功。程序中有两个线程:[线程A] = threadA、[线程B]=threadB,他们的优先级一样,都是默认的5。分析:线程之间的退让需要用yield()方法实现,这种退让只能发生在同样优先级级别的线程之间。退让了的线程,与其他同优先级级别的线程一样,同样有再次获取CPU使用权的机会。原创 2023-01-12 21:48:20 · 554 阅读 · 0 评论 -
day19-线程之间的通信&线程池&设计模式
*概念:**多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0QidQhjy-1673396944192)(assets/线程间通信.bmp)]原创 2023-01-11 08:29:53 · 228 阅读 · 0 评论