Java技术交流
戏子 丶
故事很短,人走茶凉。
展开
-
设计模式设计原则
● 类的复杂性降低,实现什么职责都有清晰明确的定义;● 可读性提高,复杂性降低,那当然可读性提高了;原创 2022-06-27 13:39:34 · 190 阅读 · 1 评论 -
数据库查询结果集生成dbf文件
<dependency> <groupId>com.github.albfernandez</groupId> <artifactId>javadbf</artifactId> <version>1.13.2</version> </dependency>//ResultSet结果集转化为dbf文件 @org...原创 2022-04-08 17:12:10 · 1270 阅读 · 0 评论 -
nginx配置webservice出现Marshalling Error问题
nginx配置webservice出现Marshalling Error问题原创 2021-12-27 15:46:43 · 1809 阅读 · 0 评论 -
sqlServer 给一个表新增字段且不为空
alter table STATIONSQUADSUM add MPAYINCASH int --添加一个可以为空的新列goupdate STATIONSQUADSUM set MPAYINCASH=0 --设置新列的值为0goALTER TABLE STATIONSQUADSUM ALTER COLUMNMPAYINCASH int not null ; --设置新列为非空原创 2021-11-09 15:52:23 · 2358 阅读 · 0 评论 -
jdbc executeBatch()事务批量提交获取到其中一条存在异常sql
import java.sql.BatchUpdateException;try{ ps.executeBatch();//批量执行 connection.commit();//提交}catch (BatchUpdateException throwables) { int[] exc = throwables.getUpdateCounts();//获取到sql执行后返回的信息 int count = 0; //遍历 获取到第几条sql有问题 for (in原创 2021-11-02 16:33:30 · 2979 阅读 · 0 评论 -
sqlserver查询阻塞进程及阻塞的语句
select t1.blocked as '阻塞的进程id', OBJECT_NAME(t2.resource_associated_entity_id) as '阻塞的表', t3.hostname as '阻塞进程-hostname', t3.nt_domain as '阻塞进程-nt_domain', t3.nt_username as '阻塞进程-nt_username', t3.loginame as '阻塞进程-loginame'from master.原创 2021-10-28 11:09:29 · 1312 阅读 · 0 评论 -
设置代码执行超时处理
import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;import com.sun.corba.se.impl.orbutil.closure.F原创 2021-10-21 11:51:41 · 686 阅读 · 0 评论 -
运算符 与(&)或(|)非(~)异或(^)左移(<<)右移(>>)
与(&): 两个操作数中位都为1,结果才为1,否则结果为0或(|):俩个操作数中位有一个为1,结果为1,否则为0非(~):如果位为0,结果是1,如果位为1,结果是0异或(^):两个操作数的位中,相同则结果为0,不同则结果为1左移(<<):x<<5 相当于 x 乘以2的5次方右移(>>):x>>5 相当于 x除以2的5次方...原创 2021-09-08 15:14:33 · 133 阅读 · 0 评论 -
sql server 将一个表中数据插入到另一个相同表结构的表中
insert into tuoxiandb.dbo.OUT_PORT_CENTER select * from tuoxiandb.dbo.OUT_PORT WHERE DT BETWEEN '2021-06-11 00:00:00' AND '2021-06-15 15:59:59';原创 2021-06-16 08:55:28 · 1238 阅读 · 0 评论 -
windows 到 linux 接收到的数据中文乱码解决方法
接收到数据时将byte转化成String时加上utf-8String bizContentstr = new String(bytes,"UTF-8");原创 2021-06-10 16:25:44 · 416 阅读 · 0 评论 -
tomcat配置端口
<Service name="Catalina1"> <Connector port="8866" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Engine name="Catalina1" defaultHost="localhost1"> <Realm原创 2021-06-02 14:43:52 · 358 阅读 · 1 评论 -
git Push to origin/master was rejected 上传报错执行下面命令再上传
git pullgit pull origin mastergit pull origin master --allow-unrelated-histories原创 2021-06-02 14:41:47 · 224 阅读 · 0 评论 -
生成webservice客户端命令
进入cmd 执行wsimport -keep -d d:\mm -p com.net.xiao -verbose http://192.168.10.239:8866/ImageStorageWCFService?wsdl原创 2021-06-02 14:40:30 · 197 阅读 · 0 评论 -
命令启动minio服务
cmd 进入到minio.exe目录下执行 .\minio.exe server D:\S3image原创 2021-06-02 14:36:18 · 1169 阅读 · 0 评论 -
将tomcat添加和删除到服务
cmd 进入tomcat的bin目录下执行 service.bat install myTomcat原创 2021-06-02 14:32:26 · 194 阅读 · 0 评论 -
oracle sqlserver 插入数据存在更新,不存在插入
Oraclemerge into IN_PORT_TEST d using dual on ( d.Listno= ? ) when not matched then insert (Listno,stano,dt) values ( ?,?,to_date(?,'yyyy-mm-dd hh24:mi:ss')) when matched then update set stano=?,dt=to_date(?,'yyyy-mm-dd hh24:mi:ss')sqlserverif not原创 2021-05-18 11:47:02 · 631 阅读 · 0 评论 -
mysql底层数据结构
B+树二叉树查找:左边小于右边B树:每个节点能有多个孩子B+树:非叶子节点只存放key值信息,所有的数据都放在叶子节点.索引:和书的目录一样,建立索引查询数据快.耗费一些内存.当数据改变的时候索引也需要变.所以索引适用于大量和,频繁查询和不频繁改变的数据.聚集索引:把主键作为索引,查找到主键获取到数据的内容非聚集索引:主键之外的字段作为索引,根据索引查询链接到主键,然后进行回表操作,再根据主键获取到数据的内容.联合索引:多个字段作为索引(最左原则)覆盖索引:如果一个索引包含(或覆盖)所有原创 2021-04-25 10:16:56 · 222 阅读 · 0 评论 -
BIO NIO AIO
BIO:同步并阻塞,客户端连接到服务器就会创建一个线程,并发高的时候会创建很多线程,会导致内存不足,可以选择线程池来改善,但线程池里的线程用光会导致请求的服务没有响应.NIO(jdk1.4):同步非阻塞,服务端接收到一个请求会创建一个线程,客户端的连接会注册到多路复用器上,多路复用器轮询到有i/o请求时才会启动一个线程.AIO (jddk1.7): 异步非阻塞,服务器模式一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。...原创 2021-04-25 09:45:05 · 84 阅读 · 0 评论 -
JVM
类加载机制:装载 链接 初始化双亲委派加载机制:防止类重复加载运行时数据区:(1和2是共享区域,线程不安全 3,4,5私有区域,线程安全)1. 方法区(包括运行时常量池):类的元数据信息(描述信息) 静态变量 常量 及时编译后的信息等2. 堆:存储对象或数组 成员变量3. Java虚拟机栈:栈(先进后出) 表示方法的执行 线程4. PC计数器:监测各个线程的运行状态5. 本地方法栈:native 修饰的方法 如hashCode()方法...原创 2021-04-23 14:39:41 · 74 阅读 · 0 评论 -
Java 5种HashMap 的遍历方式
package mian;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;public class Demo { public static void main(String[] args) { Map<Integer,String> coursesMap = new HashMap<Integer, S原创 2020-12-07 11:46:32 · 186 阅读 · 2 评论 -
mysql 随机获取数据库里的数据
select name as Employee from employee as ewhere salary>(select salary from employee where e.managerid = id);原创 2020-11-20 11:36:56 · 87 阅读 · 0 评论 -
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
输入: [0,1,0,3,12]输出: [1,3,12,0,0]class Solution { public void moveZeroes(int[] nums) { int size = nums.length; for(int i=size-1;i>=0;i--){ if(nums[i]==0){ for(int j=i;j<size-1;j++){原创 2020-11-19 09:38:35 · 1266 阅读 · 0 评论 -
带你了解下事务隔离级别和MVCC的关系
1.什么是事务:一个数据库事务通常包含对数据库进行读或写的一个操作序列。2.事务的四大属性(ACID)(1)原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。(2)一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。(3)隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。(4)持久性(Durability):一个事原创 2020-11-03 09:31:54 · 602 阅读 · 0 评论 -
MySQL调优你了解多少?
1.排除缓存干扰我们在执⾏SQL的时候,记得加上SQL_No_Cache去跑SQL,这样跑出来的时间就是真实的查询时间了。例如:select SQL_No_Cache age from db_admin where name =‘张三’2.用执行计划分析Explain select 。。。3.覆盖索引回表:⽐如⾛B索引并不能直接拿到我们的值,还需要回到主键索引才可以拿到,多了⼀次回表的过程如果在我们建⽴的索引上就已经有我们需要的字段,就不需要回表了,在电商⾥⾯也是很常⻅的,我们需要去商品表通原创 2020-11-02 09:55:43 · 103 阅读 · 0 评论 -
MySQL数据库索引知识点总结
1.MySQL数据库索引都有哪些数据结构B+和HASH2.聊下hashhash查询是把key通过hash生成下标然后获取对应的值,它的主要特点是快速精确查询,但是不支持范围查询。如果要是做成索引,速度是很慢的,要全部扫描。3.hash表在那些场景比较适合等值查询的场景,就只有KV(Key,Value)的情况,例如Redis、Memcached等这些NoSQL的中间件。有序数组,它在等值查询的和范围查询的时候都很Nice。有序的适合静态数据,因为如果我们新增、删除、修改数据的时候就会改变他的结构原创 2020-10-30 10:30:08 · 200 阅读 · 0 评论 -
带你了解一些MySQL的基础知识
1.MySQL的基本架构,然后按架构说下查询的流程。1.客户端通过连接器和MySQL进行连接。连接器负责和客户端链接、获取权限、维持和管理连接。链接 的时候会通过TCP握手,然后身份验证输入用户名和密码就好了。连接上之后处于空闲状态,可以通过show processlist查看空闲列表。数据库的客户端太久没有响应会自动断开,默认时间为8小时。2.MySQL拿到查询请求后会先查询缓存,看看之前是否执行过这条语句。如果命中就返回缓存中的value。但是这个表进行更新操作,所以的查询缓存就会被清空。3.如原创 2020-10-29 17:14:52 · 125 阅读 · 2 评论 -
你真的懂HashTable吗?
1.聊一下HashTable和跟HashMap相⽐HashTable是线程安全的,适合在多线程的情况下使⽤,但是效率低。HashTable在数据操作的时候会上锁,所以效率低。2.HashMap和HashTable的区别1.Hashtable 是不允许键或值为 null 的,HashMap 的键值则都可以为 null。因为Hashtable在我们put 空值的时候会直接抛空指针异常,但是HashMap却做了特殊处理。Hashtable使⽤的是安全失败机制(fail-safe),这种机制会使你此次原创 2020-10-28 09:46:18 · 324 阅读 · 0 评论 -
你真的懂HashMap吗?
1.HashMap的结构和底层原理HashMap是由数组和链表组合构成的数据结构,它的存储是key-value键值对的形式存储的。跟据key的Hash去计算index下标,也就是插入的位置。2.为什么会出现链表?数组的长度是有限的,哈希本身存在概率性,极端会出现俩个key会Hash到同一个值,就会出现链表。3.在新的Entry节点是怎样插入链表中的?Java8之前是采用头插,新来的值会代替原来的值,原来的值就会到链表当中。Java8之后采用的是尾插(因为头插,多线程插入可能会出现循环链表,取值时原创 2020-10-27 14:50:12 · 163 阅读 · 0 评论 -
在你眼中的ArrayList
ArrayList: 底层是用数组实现存储特点: 查询效率高,增删效率低,线程不安全,使用频率高1.为什么线程不安全却使用频率高?因为在正常使用中常用来做查询,增删很少。用LinkedList可以做频繁的增删,vector的方法全用synchronized修饰,是线程安全的,这是三者的区别。2.底层数组大小是固定的,如果不断的往里添加数据会出现问题嘛?ArrayList可以通过构造方法在初始化的时候指定底层数组的大小。3.数组长度受限制,而ArrayList长度不受限制,是怎么实现的呢?通过原创 2020-10-27 11:12:06 · 137 阅读 · 0 评论 -
Java多线程 4个窗口按顺序卖100票
public class SellTickets implements Runnable { private int ticketCount =100; private Object object = new Object(); @Override public void run() { while (ticketCount>0){ synchronized (object){ if (ticket原创 2020-10-26 14:40:41 · 914 阅读 · 1 评论 -
今天学习下设计模式之原型模式
设计模式: 原型模式实际上就是实现 Cloneable 接口,重写 clone()方法。浅拷贝和深拷贝:浅拷贝:Object 类提供的方法 clone 只是拷贝本对象,其对象内部的数组、引用对象等都不拷贝,还是指向原生对象的内部元素地址,这种拷贝就叫做浅拷贝,其他的原始类型比如 int、long、char、string(当做是原始类型)等都会被拷贝。注意: 使用原型模式时,引用的成员变量必须满足两个条件才不会被拷贝:一是类的成员变量,而不是方法内变量;二是必须是一个可变的引用对象,而不是一个原始类型或原创 2020-10-24 09:44:13 · 146 阅读 · 0 评论 -
今天学习下设计模式之代理模式
代理模式: 为其他对象提供一种代理以控制对这个对象的访问。public interface BuyCar { public void buyCar();}public class BuyCarImpl implements BuyCar { @Override public void buyCar() { System.out.println("我要买车!!"); }}public class ProxyBuyCar implements Buy原创 2020-10-24 09:15:08 · 80 阅读 · 0 评论 -
今天学习下设计模式之模板方法模式
模板方法模式: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。AbstractClass 叫做抽象模板,它的方法分为两类:● 基本方法基本方法也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。● 模板方法可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度,完成固定的逻辑。注意: 为了防止恶意的操作,一般模板方法都加上 final 关键字,不允许被覆写。具体模板:ConcreteClass1原创 2020-10-23 15:06:08 · 63 阅读 · 0 评论 -
今天学习下设计模式之单例模式
单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。public class Singleton { //线程安全// private static Singleton singleton = new Singleton();// private Singleton(){}// public static Singleton getInstance(){// return singleton;// } //线程不原创 2020-10-23 09:03:28 · 69 阅读 · 0 评论 -
springcloud微服务搭建及常用组件的使用(详解)
文章目录开发工具及环境一、为什么使用微服务?二、微服务各组件的用途1.eureka(注册中心)2.ribbon(负载均衡)3.zuul(网关)4.Hystrix(熔断器)三、微服务的搭建(仔细看内容,最后有源码)1.eureka集群的搭建2.订单服务搭建3.仓库服务搭建4.网关服务搭建(zuul)5.搭建4个服务(测试网关用途)总结开发工具及环境工具:Intellij IDEA环境:Java 1.8 maven一、为什么使用微服务?重点:节约成本,提高性能举一个简单明了的例子,传统服原创 2020-09-11 17:05:15 · 816 阅读 · 0 评论 -
如何连接Oracle数据库
1. 程序员在编写程序的时候总需要连接到数据库,然后我写下如何连接到Oracle数据库工具/原料:Oracle数据库Eclipse(1)先写好驱动字符串,连接字符串,用户名和密码字符串。localhost 是本地地址1521 是Oracle 默认端口orcl 是Oracle 默认名称uname 和 pwd 是 Oracle的用户名和密码 (2)加载驱动 Class.forName(driverStr);(3)获取连接 conn=DriverManager.getConne原创 2020-08-10 10:01:52 · 1962 阅读 · 0 评论