
java
文章平均质量分 79
心 动ヾ
这个作者很懒,什么都没留下…
展开
-
消息中间件解决方案JMS
消息中间件解决方案JMS1.什么是消息中间件消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者/发送者)、Consumer(消费者/接收者),主要作用是改善系统模块调用关系、减少模块之间的耦合。常见的消息中间件产品:(1)ActiveMQActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。Active原创 2022-05-19 16:24:31 · 331 阅读 · 0 评论 -
Redis
Redis1.为什么要学习Redis?当我们的系统引入了传统的缓存框架,比如(ehcache),因为ehcache等框架只是一个内置的缓存框架,所以前端的缓存和后台的(每一个web server)的缓存都是独立存在的,假如一个缓存中的数据发生了更新,其他缓存是不可能知道的,这样对于乐观锁,总会提示失败。2.出现上面的问题我们需要如何解决?解决方法有两个:1.同步缓存数据【在分布式环境下,缓存是不能同步】2.让缓存集中处理(大家使用同一个缓存服务)。就是说我们需要一个类似于MYSQL这样可以通过服原创 2022-05-19 15:17:28 · 980 阅读 · 0 评论 -
处理密码的算法
package cn.com.yunguangche.common;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Random;import java.util.stream.Collectors;public class TurlKeyHelper { public TurlKeyHelper() { setSeq("mUE3fSJge原创 2022-05-18 10:10:37 · 124 阅读 · 0 评论 -
SpringBoot+SpringData Jpa
依赖: <!--data-jpa的场景启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependenc原创 2022-05-17 15:43:41 · 348 阅读 · 0 评论 -
Spring Data JPA --- 审计,Repository原理
乐观锁hibernate 防并发修改private @Version Long version;审计如何使用审计功能首先申明实体类,需要在类上假上注解 @EntityListeners(AuditingEntityListener.class) ,其次在application 启动类中加上注解 EnableJpaAuditing , 同时在需要的字段上加上 @CreatedDate 、 @CreatedBy 、 @LastModifiedDate、@LastModifiedBy等注解。 这个时原创 2022-05-23 00:30:00 · 627 阅读 · 0 评论 -
Spring Data JPA ---多表关联
多表关联操作 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency>一对一客户表 —> 老婆表客户表 —> 账户表…实现:@OneToOne原创 2022-05-22 03:30:00 · 711 阅读 · 0 评论 -
Spring Date JPA -自定义操作(Querydsl)
Querydslhttps://querydsl.com/ QueryDsl文档QueryDSL是基于ORM框架或SQL平台上的一个通用查询框架。借助QueryDSL可以在任何支持的ORM框架或SQL平台上以通用API方式构建查询。 JPA是QueryDSL的主要集成技术,是JPQL和Criteria查询的代替方法。目前QueryDSL支持的平台包括 JPA,JDO,SQL,Mongodb 等等。。。Querydsl扩展能让我们以链式方式代码编写查询方法。该扩展需要一个接口QueryDslPred原创 2022-05-21 15:30:00 · 1031 阅读 · 0 评论 -
Spring Date JPA -自定义操作[Query by Example,Specifications]
自定义操作jpql(原生SQL)a.@Queryi. 查询如果返回单个实体 就用pojo接收 , 如果是多个需要通过集合 ii. 参数设置方式索引 : ?数字具名: :参数名 结合@Param注解指定参数名字iii. 增删改:要加上事务的支持:如果是插入方法:一定只能在hibernate下才支持 (Insert into…select )@Transactional // 通常会放在业务逻辑层上面去声明@Modifying // 通知springdatajpa 是增删改的操作原创 2022-05-20 11:30:00 · 266 阅读 · 0 评论 -
Spring Data Repositories
使用Spring Data RepositoriesCrudRepository// 用来插入和修改 有主键就是修改 没有就是新增 // 获得插入后自增id, 获得返回值 <S extends T> S save(S entity); // 通过集合保存多个实体 <S extends T> Iterable<S> saveAll(Iterable<S> entities); // 通过主键查询实体 Optional<T>原创 2022-05-19 08:45:00 · 182 阅读 · 0 评论 -
Spring Date JPA
介绍官网:https://spring.io/projects/spring-data-jpa#overviewSpring Data JPA, part of the larger Spring Data family, makes it easy to easily implement JPA based repositories. This module deals with enhanced support for JPA based data access layers. It makes i原创 2022-05-18 08:30:00 · 359 阅读 · 0 评论 -
Spring Date JPA - Hibernate与JPA
Hibernate与JPA所以底层需要某种实现,而Hibernate就是实现了JPA接口的ORM框架。也就是说: JPA是一套ORM规范,Hibernate实现了JPA规范!mybatis:小巧、方便?、高效、简单、直接、半自动 半自动的ORM框架,小巧: mybatis就是jdbc封装 在国内更流行。场景: 在业务比较复杂系统进行使用,hibernate:强大、方便、高效、(简单)复杂、绕弯子、全自动 全自动的ORM框架,强大:根据ORM映射生成不同SQL 在国外更流。场景: 在业务相对原创 2022-05-17 08:00:00 · 216 阅读 · 0 评论 -
Spring Date JPA - 什么是JPA
什么是JPA?相同处:1.都跟数据∙库操作有关,JPA 是JDBC 的升华,升级版。2.JDBC和JPA都是一组规范接口3.都是由SUN官方推出的不同处:1.JDBC是由各个关系型数据库实现的, JPA 是由ORM框架实现2.JDBC 使用SQL语句和数据库通信。 JPA用面向对象方式, 通过ORM框架来生成SQL,进行操作。3.JPA在JDBC之上的, JPA也要依赖JDBC才能操作数据库。JDBC是我们最熟悉的用来操作数据库的技术,但是随之而来带来了一些问题: 1. 需要面原创 2022-05-16 15:35:12 · 121 阅读 · 0 评论 -
spring源码及相关面试题
1、什么是Spring框架,Spring框架主要包含哪些模块Spring是一个开源框架,Spring是一个轻量级的Java 开发框架。它是为了解决企业应用开发的复杂性 而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用 程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的 用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受 益。S.原创 2022-05-16 15:15:11 · 827 阅读 · 1 评论 -
雪花算法原理
雪花算法保证:1.所生成的ID按时间递增2.整个分布式系统不会有重复的ID雪花ID的组成不用:1bit,因为最高位是符号位,0表示正,1表示负,所以这里固定为0时间戳:41bit,服务上线的时间毫秒级的时间戳(为当前时间-服务第一次上线时间),这里为(2^41-1)/1000/60/60/24/365 = 49.7年工作机器id:10bit,表示工作机器id,用于处理分布式部署id不重复问题,可支持2^10 = 1024个节点序列号:12bit,用于离散同一机器同一毫秒级别生成多条Id时,可原创 2022-05-16 15:00:00 · 549 阅读 · 0 评论 -
springboot多数据源使用
多数据源一、多数据源的典型使用场景在实际开发中,经常可能遇到在一个应用中可能需要访问多个数据库的情况。以下是两种典型场景:1 业务复杂(数据量大)数据分布在不同的数据库中,数据库拆了, 应用没拆。 一个公司多个子项目,各用各的数据库,涉及数据共享…2 读写分离为了解决数据库的读性能瓶颈(读比写性能更高, 写锁会影响读阻塞,从而影响读的性能)。 很多数据库拥主从架构。也就是,一台主数据库服务器,是对外提供增删改业务的生产服务器;另一(多)台从数据库服务器,主要进行 读的操作。可以通过中间件(原创 2022-05-16 14:07:46 · 6233 阅读 · 2 评论 -
生成和解析JSON
生成和解析JSON1.什么是JSON,JSON的作用是什么,如何编写JSON?JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言.例如:一个java对象转换成json对象以后是什么样子?package com.click369.test1;public class Person { private int perid;原创 2021-03-31 09:37:03 · 85 阅读 · 0 评论 -
分布式框架 ---dubbo
分布式框架-Dubbox1 什么是SOA架构SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。其实SOA架构更多应用于互联网项目开发。为什么互联网项目会采用SOA架构呢?随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,迫切需一个治理系统确保架构有条不紊的演进。战争论–《战争论》是普鲁士军事理论家卡尔·冯·克劳塞维原创 2021-03-31 09:08:07 · 602 阅读 · 1 评论 -
生成和解析JSON
1.什么是JSON,JSON的作用是什么,如何编写JSON?JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言.例如:一个java对象转换成json对象以后是什么样子?package com.click369.test1;public class Person { private int perid; private St原创 2020-10-12 17:30:33 · 213 阅读 · 0 评论 -
生成和解析XML
1.什么是XML,XML的作用是什么,如何编写XML文件?XML就是可扩展标记语言。与HTML相似都是标记语言。XML提供的标记都是自定义的;HTML提供的标记都是预先定义好的。XML用来存储数据的文本格式;HTML是同来设计网页。XML是一种简单的数据存储语言。如何编写XML文件?一个简单的XML文件格式<?xml version="1.0" encoding=”utf-8”?><students><student id=”1001” >原创 2020-10-11 21:08:20 · 237 阅读 · 0 评论 -
JDBC--连接池
通过JDBC使用DBCP与C3P0连接池操作1.通过JDBC使用C3P0连接池C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。例如:create table t_user(user_id int primary key auto_increment,user_name varchar(20),user_age int,user_sex bit,user_address va原创 2020-09-29 18:12:15 · 264 阅读 · 0 评论 -
JDBC--事务
4.什么是事务?事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。程序执行单元(unit)—数据库操作的一组SQL语句的执行。1.由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写2.由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。例如:我们要实现一个银行转账的操作,首先从A账户减掉指定的金额,然后B账户增加指定的金额,此时原创 2020-09-28 22:11:28 · 132 阅读 · 0 评论 -
JDBC
JDBC11.JDBC是什么?JDBC(java database connectivity)Java数据库连接。是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。我们通常说的JDBC是面向关系型数据库的。2.JDBC访问数据库需要用到的类、接口、方法?2.1 java.sql包DriverManager类–负责加载各种不同驱动程序(Driver),并根据不同的请求,向调用者返回相应的数据库连接。 驱动程序,会将自身加载到DriverMana原创 2020-09-27 20:14:22 · 114 阅读 · 0 评论 -
MySQL
10.排序查询 order by 列名 asc[升序]|desc[降序]select * from t_user order by uage asc;select * from t_user order by uheight desc;11.SQL聚合函数查询#count(列名/) – 行的总数【总记录数】select count() from t_user;#sum(列名) – 求和select sum(uheight) from t_user;#avg(列名) – 求平均数selec原创 2020-09-24 21:33:00 · 136 阅读 · 0 评论 -
MySQL数据库
MySQL数据库1.SQL语言7.1.基本数据库操作语句1.启动和关闭MySql服务启动MySql服务1.命令行操作启动MySql服务2.通过计算机控制面板访问服务控制面板----》管理工具----》服务-----》MySQL服务名—》启动 关闭MySql服务1.命令行操作关闭MySql服务2.通过计算机控制面板访问服务控制面板----》管理工具----》服务-----》MySQL服务名—》停止如果MySQL服务没有启动,我们是无法登陆连接到MySQL数据库服务器的,原创 2020-09-24 13:09:15 · 129 阅读 · 0 评论 -
MySQL数据库
.MySQL数据库1.什么是数据库?数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。2.数据库的分类?1.关系型数据库[结构化的数据]关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,原创 2020-09-22 20:22:58 · 290 阅读 · 0 评论 -
第一个小项目---聊天室
聊天室TcpCharRoomClient客户端package com.lx.lts.client;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class TcpCharRoomClient { public static void main(String[] args) throws Exception { // 得到服务器的ip地址 String se原创 2020-09-19 11:05:44 · 103 阅读 · 0 评论 -
设计模式---代理模式
14.7.什么是代理模式?为其他对象提供一种代理以控制对这个对象的访问。买火车票不一定在火车站买,也可以去代售点。package com.lx.test1;public interface SellPaio { void maipiao();}package com.lx.test1;public class HuoCheZhan implements SellPaio{ @Override public void maipiao() { System.out.printl原创 2020-09-15 10:31:27 · 166 阅读 · 0 评论 -
设计模式---工厂模式
工厂模式14.5.什么是工厂模式?定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。1.需求量大2.牵一发,动全身有3种角色1.工厂角色----【类】2.抽象产品角色—【抽象类/接口】3.具体产品角色----【抽象类/接口子类】例如:有农场生产各种水果,有西瓜,有苹果,有香蕉…农场—工厂角色----【类】水果—抽象产品角色—【抽象类/接口】西瓜,苹果,香蕉—具体产品角色----【抽象类/接口子类】抽象工厂模式—提供一个创建一系列相关或相原创 2020-09-15 10:31:07 · 304 阅读 · 0 评论 -
设计模式(1)---单例\单态模式
认识设计模式14.1.什么是设计模式?设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结14.2.设计模式的作用是什么?使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。14.3.什么是单例模式/单态模式?单例模式—保证一个类仅有一个实例。当类被频繁地创建与销毁的时候,我们使用单例模式,这样可以减少了内存的开销,原创 2020-09-15 10:24:32 · 177 阅读 · 0 评论 -
反射
13.1.反射是什么,有什么作用?反射—在程序运行的过程中,我们可以得到某个类的对象,可以调用某个类中的任何一个变量/方法,这种动态获取信息的过程就是反射。当我们在没有见过某个类的情况下,仅凭一个完整的类名,就可以获取到整个类的所有信息。反射的使用场景:1、jdbc加载数据库驱动2、Servlet的web.xml配置3、Spring框架13.2.实例对象与反射对象的相互转换?实例对象-----就是我们通过类创建的对象反射对象-----通过反射机制得到的类对象例如: 反射就是一面镜子,镜原创 2020-09-11 19:55:47 · 97 阅读 · 0 评论 -
泛型
12.1.什么是泛型?泛型—广泛的数据类型。将某一个类/接口/方法/变量的数据类型象使用参数一样传递给类/接口/方法/变量。数据类型的参数化,任意化12.2.为什么需要泛型?第一天 类中的x,y变量需要intpackage com.lx.test1;public class IntTest { private int x; private int y; public int getX() { return x; } public void setX(int x) {原创 2020-09-11 19:31:56 · 100 阅读 · 0 评论 -
网络编程3
11.8.什么是UDP,它的优缺点是什么?UDP—>用户数据报协议报—报文优点:消耗小,效率高缺点:不能保证数据的安全与可靠。11.7.建立基于UDP的网络通讯程序需要使用的类和常用方法?1.基于UDP的网络通讯程序是不区分客户端和服务器。java.net Class DatagramPacket—该类表示数据报包。【打包被发送的数据/接收发来的数据】构造方法DatagramPacket(byte[] buf, int length) 构造一个 DatagramPacket用于接收长原创 2020-09-10 19:24:27 · 102 阅读 · 0 评论 -
网络编程2
网络编程211.6.什么是TCP,它的优缺点是什么?TCP–传输控制协议优点:保证数据安全可靠缺点:消耗大,效率低11.7.建立基于TCP的网络通讯程序需要使用的类和常用方法?基于TCP的网络通讯程序是区分客户端和服务器端创建客户端程序1.java.net Class Socket 创建基于TCP的通讯程序的客户端对象的java类通过这个类创建的对象就表示一个客户端2.构造方法Socket(InetAddress address, int port) 创建流套接字并将其连接到指定IP地原创 2020-09-09 20:54:35 · 88 阅读 · 0 评论 -
网络编程1
网络编程111.1.什么是网络?在计算机领域中网络是信息传输,接收,共享的虚拟平台,通过它把各个点,面,体的联系到一起,从而实现这些资源的共享。作用:信息传输,资源共享优点: 资源共享免费11.2.OSI七层参考模型和TCP/IP四层参考模型计算机网络是指由通信线路互相连接的许多自主工作的计算机构成的集合体,各个部件之间以何种规则进行通信,就是网络模型研究的问题。网络模型一般是指OSI七层参考模型和TCP/IP四层参考模型。这两个模型在网络中应用最为广泛。OSI七层参考模型应用层\表示层原创 2020-09-08 17:30:26 · 379 阅读 · 0 评论 -
打怪物小案例(1)
话说有一个叫IGame的游戏公司,正在开发一款ARPG游戏(动作&角色扮演类游戏,如魔兽世界、梦幻西游这一类的游戏)。一般这类游戏都有一个基本的功能,就是打怪(玩家攻击怪物,借此获得经验、虚拟货币和虚拟装备),并且根据玩家角色所装备的武器不同,攻击效果也不同。这天,IGame公司的开发小组正在开会对打怪功能中的某一个功能点如何实现进行讨论,他们面前的大屏幕上是这样一份需求描述的ppt创建怪物package com.lx.test;/** * 怪物类 * @author Administ原创 2020-09-07 21:19:45 · 625 阅读 · 0 评论 -
多线程4
多线程410.8.生产与消费模型实际生活中,需要操作共享的某个资源(水池),但是对这个共享资源的操作方式不同(部分是注水[生产]、部分是抽水[消费])。把这种现象我们可以称为生产和消费模型。生产:它可以采用部分线程进行模拟。多个线程同时给水池中注水。消费:它可以采用部分线程进行模拟。多个线程同时从水池中抽水。对资源的不同的操作方式,每种方式都可以让部分的线程去负责。多个不同的线程,他们对相同的资源(超市、水池等)操作方式不一致。这个时候我们不能使用一个run方法对线程的任务进行封装。所以这里就需原创 2020-09-05 11:31:36 · 114 阅读 · 0 评论 -
多线程3
多线程3通过继承Thread类所创建的线程不能实现资源共享功能package com.lx.test1;public class MyThread extends Thread { //定义车票【共享资源】 private int piao =10; public void run() { while(piao>0) { //我们通过线程的暂停来模拟 //收钱-->打票-->找钱 try { Thread.sleep(500);原创 2020-09-04 10:34:27 · 125 阅读 · 0 评论 -
多线程2
10.2.多线程的创建方式以及区别Java中的线程当一个java程序启动运行以后,至少有2个线程在运行。1.主线程,就是java程序的主方法执行线索2.垃圾回收线程。Java中多线程的创建方式第一种,通过继承Thread类创建线程类第二种,通过实现Runnable接口创建线程类第三种,通过Callable和Future接口创建线程【第4种,通过线程池技术创建线程】上面3种多线程的创建方式区别通常情况我们都是使用实现Runnable接口方式创建线程。10.3.线程中的常用操作方法J原创 2020-09-03 11:40:14 · 142 阅读 · 0 评论 -
多线程1
10.1.什么是多线程?1.什么是进程?进程:在操作系统中运行的某个软件/某个程序(主要是指在内存中)。任何软件/程序要运行都要被加载到内存中,而内存负责运行这个软件/程序所需要的那些内存空间,就被称为当前软件在内存中的一个进程。1.进程需要依赖与操作系统进程就是在操作系统中动态运行的静态代码。2.什么是线程?线程就是在操作系统中动态运行的静态代码中的某一项具体功能的执行过程【执行轨迹/执行线索】。例如:我们在window操作系统上打开“暴风影音”播放电影,此时“暴风影音”就会在wind原创 2020-09-02 10:58:39 · 141 阅读 · 0 评论 -
简单的学生系统---保存到文件内
简单的学生系统—保存到文件内清空集合studentList.clear();添加创建保存信息的集合保存到工程的路径下 直接写保存的文件名称保存学生信息的文件对象制作成全局private static File file=new File("student.txt");创建一个字符输出流对象BufferedWriter out=new BufferedWriter(new FileWriter(file,true)); //此类不提供换行调用写出方法来输出学生信息到文件i原创 2020-08-31 22:56:14 · 453 阅读 · 0 评论