自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 项目不能debug,只能通过日志方法来调试

问题:项目不能dubug,之前这个项目没问题可以打断点,后来不知道谁改了什么东西不能打断点了,后来通过打印日志方法来进行调试,其他项目是可以打断点的,唯独这个项目不行。后面发现编译过后的代码和原代码对不上,一些变量改成了var1、var2;

2024-07-30 18:39:40 71

原创 postgis相关操作

geom

2024-07-06 11:20:58 185

原创 项目部署到线上byte[]转换中文乱码,本地是好的

我开始以为这个Charset.defaultCharset() 里面就是utf-8,然后我把这个打印出来发现在,线上是的gbk。byte[]转换成中文乱码,在idea上面调试没有乱码,部署到线上就乱码,原因是idea启动项目是utf-8,然后我果断就把这个改成了 utf-8 ,或者在启动的时候 把启动脚本加上编码格式。然后线上是windows环境不知道啥。

2024-04-01 15:47:30 340

转载 MySQL索引基础到原理讲解,一篇文章就够了!

因为索引对于改善查询性能的作用是巨大的,所以我们的目标是尽量使用索引。5.1. 索引的创建根据上一节的分析,我们总结出索引创建的一些注意点:1、在用于 where 判断 order 排序和 join 的(on)字段上创建索引2、索引的个数不要过多。——浪费空间,更新变慢。3、区分度低的字段,例如性别,不要建索引。——离散度太低,导致扫描行数过多。4、频繁更新的值,不要作为主键或者索引。——页分裂5、组合索引把散列性高(区分度高)的值放在前面。——最左前缀匹配原则。

2024-01-24 11:57:58 286

翻译 二、docker安装、配置

一、安装docker安装docker依赖包$ sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2这里注意 ‘\’前面有个空格告诉linux系统docker的下载地址$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo安装docker引擎$ sudo yum i

2021-07-02 14:50:21 166

原创 服务器相关问题

服务器相关问题mysql修改root权限先在linux系统中的把登录进去mysql,-u后面是账号,-p后面是密码mysqladmin -u root -p1492a9b903f38fa2然后找到mysql库中的user表,将host这个字段改成%就好了,重启一下服务器,然后就可以用Navicat用root账号连接,切换数据库 use mysql刷新MySQL的系统权限相关表­ flush privileges;...

2021-02-08 16:26:37 139

原创 sql语句基本写法和函数

关于sql语句基本写法和函数连表修改第一种表B查询符合条件,然后根据id连表修改表A的某行或者多行记录update A as a, B as bset a.name = b.simple_namewhere a.key1 = “project_name” and a.project_code=“scsc_project”第二种根据id边表修改用左连接来,表B查询符合条件,然后根据id连表修改表A的某行或者多行记录(两张表)update A as a left join B as b

2021-01-08 10:49:16 581

翻译 七大设计原则笔记

设计模式的目的编写软件过程中,程序员面临着来自耦合性、内聚性以及可以维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件)具有更好代码重用性(即:相同功能的代码,不用多次编写)可读性(即:编程规范性,便于其他程序员的阅读和理解)可扩展性 (即:当需要增加新的功能时,非常的方便,也可以称为可维护性)可靠性(即:当我们增加新的功能后,对原来的功能没有影响,就是功能之间...

2020-04-06 13:53:03 262

转载 稀疏数组

package com.cb.稀疏array;import org.omg.PortableServer.ForwardRequestHelper;public class Demo01 { public static void main(String[] args) { int[][] array = new int[11][11]; array[1][2]= 1; arr...

2019-12-16 15:41:00 126

转载 C# .NET 动态调用webservice的三种方式

通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务。这样是使工作简单了,但是却和提供Web服务的URL、方法名、参数绑定在一起了,这是VS.NET自动为我们生成Web服务代理的限制。如果哪一天发布Web服务的URL改变了,则我们需要重新让VS.NET生成代理,并重新编译。在某些情况下,这可能是不能忍受的,我们...

2019-11-14 10:41:06 925

转载 c#连接MySQL数据库实例

using System;using System.Configuration;using MySql.Data.MySqlClient;/// <summary>/// TestDatebase 的摘要说明/// </summary>public class TestDatebase{ public TestDatebase() { ...

2019-11-11 16:53:30 211

原创 委托

什么是委托委托(delegate)是函数指针的“升级版”,字面意思是这有一件事件我自己不亲自做,委任给别人做,也就是间接的去做。函数指针是C/C++中的概念一切皆地址变量(数据)是以某个地址为起点的一段内存中所储的值。函数(算法)是以某个地址为起点的一段内存中所存储的一组机器语言指令。变量也是就数据存在内存中,这个变量保存这个变量的地址,通过这个地址去找这个数据,这个数据的大小是这个变...

2019-11-03 18:47:35 161

原创 Spring-04-set方法注入

DI:依赖注入属性赋值有两种方式:构造方法、访问器光靠构造方法赋值,在实际应用中远远不够AOP是方法论,DI是具体手段两注入方式1、通过“构造器”注入2、通过“访问器”注入访问器赋值例:狗和主人----涉及到基本类型、String类型、自定义类型、数组类型、三种集合的赋值主人类public class DogMst { DogMst (){ System.out.pri...

2019-10-24 11:04:45 150

原创 Spring-03-懒加载&多实例

spring的懒加载【lazy-init=“true”】当我们启动spring容器时,创建对象,还没getBean()就调用了构造方法xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://w...

2019-10-21 18:42:21 244

原创 spring-02-对象创建三法

对象创建三法1、构造器创建appContext.getBean(Class/“id”);Spring默认调用类的“无参构造方法”来创建对象。2、静态工厂创建&普通工厂静态工厂,里面写一个静态方法返回一个类的实例,普通工厂就把静态关键字去掉public class 静态工厂 { public 静态工厂(){ System.out.println("====="+getCla...

2019-10-20 15:31:20 149

原创 Spring-01-Spring第一个代码

Spring的核心:IOC三层结构中,各层之间如何调用?|–Servlet需要一个“业务逻辑类”,new一个|–“业务逻辑类”需要“持久层类”,new一个|–若一个类被修改,依赖它的类都会受牵连Spring的解决方案--所有类之间的"依赖关系"通过配置文件设置IOC:控制反转——把对象的创建、初始化、销毁交给Spring去做。 |--以前:创建、初始化、是程序员做;销毁是jvm的垃...

2019-10-20 12:57:43 203

原创 webserver_01反射

反射:当我们new一个对象,需要java虚拟机在我们类加载区域加载这个new的模子,这是虚拟机需要做的事情,有了个这模子就可以new对象,现在用我们使用者来准备个模子,不在用虚拟机而是我们。相当于一个人通过镜子,看到了自己的鼻子、眼睛,而鼻子、眼睛就是一个个对象。对java反射理解第一个角色反转了,以前是java虚拟机加载这个模子,现在由我们来运行模子。第二个是将类的各种结构解剖成一个个对象...

2019-10-04 09:29:12 146

原创 list、set

ArrayList底层采用的数组实现存储,查询效率高,增加效率底,线程不安全。LinkdList底层采用双向链表实现的存储。查询效率低,增删效率高,线程不安全。为什么说它增删效率高呢,它就像小朋友手拉手,删除数据就把中间打断,让另外两个小朋友手拉手,增加也一样,不像数组,删除一个结点,就要重新拷贝。Aector向量底层用数组实现的List,相关的方法都加了同步检查,因此”线程安全,效率低"...

2019-10-01 18:28:15 208 2

原创 非静态内部类、静态内部类、匿名内部类

一、非静态内部类(外部类里面使用非静态内部和平时使用其他类没什么不同)1.非静态内部必须寄存在一个外部类对象里,因此,如果有一个非静态内部类对象,那么一定存在对应的外部类对象。非静态内部类对象单独属于外部类的某个对象2、非静态内部类可以直接访问外部类成员,但是外部类不能直接访问非静态内部类成员3、非静态内部类不能有静态方法、静态属性和静态初始化块。4、外部类的静态方法、静态代码块不能访问非...

2019-09-28 16:54:06 308

原创 已知进栈序列,求不可能的一个出栈序列

栈先进后出,就是第一个进来的时候最后一个出去,你可以把它想象成弹夹,第一个上弹夹的最后一个打出去。首先我们不知道栈的大小是多少,而且,进栈的过程中也可以出栈。选项A,3先出栈,那说明1、2已经进栈了,第二个数是1,是不可能。因3出栈,后面要么2出栈,要么4进栈再出栈,所以3的后面不是2就是3,而选项A后面是1,所以A不是正确的,不符合先进出。选项B是1先进栈再出栈,然后2、3、4进栈,再4...

2019-09-27 16:55:53 1729

原创 静态语句块、构造语句块和构造函数的执行顺序

public class A { //构造方法 public A(){ System.out.println("A--->父类构造方法"); } //非静态代码块 { System.out.println("A--->父类非静态代码块"); } //静态代码块 static{ System.out.println("A--->父类静态代码块");; ...

2019-09-27 11:01:24 262

原创 二叉树的遍历(递归与队列)

遍历就是按照某种次序访问树中的所有结点,且每个结点恰好访问一次。也就是说,按照访问的次序,可以得到由树中所有结点排成一个序列。树的遍历也可以看成人为的将非线性结构线性化。将整个二 叉树看做三部分:根、左子树、右子树、、如果规定先遍历左子树、再遍历右子树。那么根据根的遍历顺序就有三种遍历方式。先序/根遍历DLR: 根 左子树 右子树中序/根遍历LDR: 左子树 根 右子...

2019-09-23 16:53:43 415

翻译 树和二叉的的基本概念

树(tree)是n(n>=0)个结点的有限集,它1)或者是一棵空树(n=0),空树中不包含任何结点。2)或者是一棵非空树(n>0),此时有且仅有一个特定的称为根(root)的结点;图中(a)是一棵空树、(b)是只有一个根节点的树、(c)是一棵有10个结点的树,其中A是根,其余结点分成3个不相交的集合,每个集合都构成一棵树,且都是根A的子树。生活案例:族谱公司上下级关系...

2019-09-22 10:38:41 500

原创 设计模式_4_简单工厂模式

工厂模式:实现了创建者和调用者的分离,就帮助我们实例化对象。开闭原则(ocp):一个软件的实体应当对扩展开放,对修改关闭。也就是说如果要增加新的功能,不要修改里面的东西,而通过增加新的例来实现。依赖倒转原则(dip):要针对接口编程,不要针对实现编程。比如有两个实现类,a类调b类,a类依赖于b,dip原则要依赖于抽象,不依赖于具体,就是 a类调b类,b类实现一个接口,a类调这个接口,a类和接...

2019-09-19 15:01:05 176

原创 笔记_MVC开发模式

MVC开发模式:M(Model 模型):实体类和业务和daoV(view 视图):jspC(controller 控制器):servlet,他的作用视图和逻辑分离MVC适用场景:大型项目开发开发流程:1、先设计数据库2、实体类3、持久层4、业务逻辑5、控制器6、视图从底层往上写,越在底层复用率就越高...

2019-09-16 14:12:00 158

原创 servlet_请求中文乱码解决&Servlet流程

请求中文乱码:浏览器发起请求到服务器(请求),服务器接受浏览器的请求,进行解析,然后浏览器默认的编码格式是iso8859-1,而解析的编码是utf-8,所以会出现乱码。解决方案:1、使用String进行数据重新编码uname = new String(uname,getBytes("iso8859-1"),"utf-8");2、使用公共配置get方式:步骤一:req.setChar...

2019-09-15 19:13:09 156

原创 设计模式_3_单例模式_反射和反序列化的漏洞和解决方案

前两篇介绍了创建单例模式的五种方式,而其中有四种(除了枚举)可以通过反射和反序列化破解的。 通过反射,创建两个不同的对象package com.cb.study01;import java.lang.reflect.Constructor;/* * 测试反射和反序列化 */public class Client1 { public static void main(Str...

2019-09-10 16:30:13 207

原创 设计模式_2_单例模式_双重检测锁_静态内部类_枚举

单例模式的其他三种实现方法,尽量的把懒汉饿汉的优点集聚起来,缺陷避免发生。双重检测锁实现 :将同步方法移到内部,变了方法块,提高了执行的效率,当很多线程同时的调的时候,只有第一次调的时候才同步,创建了以后就不用同步。代码package com.cb.study01;/* * 双重检查锁实现单例模式 */public class SingletonDemo03 { privat...

2019-09-09 15:23:03 193

原创 设计模式_1_单例模式_饿汉懒汉

创建型模式就是帮助我们建一些相关的对象,单例模式就是其中的一种。单例模式:就是一个类只有一个对象,并且提供一个方法访问这个对象。单例只需要生成一个实例,所以内存占用和系统开销比较小,对于一些资源共享和初始化比较慢的资源处理时候,我们可以用单例模式来做。饿汉式的特点:线程安全,调用效率高。缺陷是不能延时加载。一般希望延时加载。饿汉式一般实现要注意三点,第一要私有构造器,把构造器私有了,别人就...

2019-09-09 11:22:43 196 1

原创 多线程_25_happenbefore

Happenbefore:指令重排,就是代码与代码之间没有相互的联系,没有相互的依赖,就是我的把后面的结果往前提不会影响整个的结果,这就叫做指令重排。由上图来理解机器是怎么来编译和运行代码的。先将代码翻译成指令。第二步,从对应的寄存器中拿出对应的值,也就是工作空间拷贝主存的数据,第三步,这两个值计算得到结果124第四步,将结果同步到主存里面一条指令执行的步骤:1、获取指令;2、...

2019-09-07 15:17:01 186

原创 多线程_24_定时调度

任务定时调度,说白了就是闹钟,在某一个有规律的时间点干某件事;比如晚上十二点钟把程序跑起来,到了晚上十二点跑去公司把程序运行起来,有了这个任务定时调度就不用了,到点了,程序自动跑起来,可以指定一个时间让它自己动起来。通过timer和timetask,就能实现定时启动某个线程。案例package com.cb.thread.day06;import java.util.Calendar;...

2019-09-05 15:58:08 159

原创 多线程_23_并发协作_管程法_信号灯法

并发协作模型生产者消费者模式的第一种管程法,它的核心要点是加了缓冲区,有了缓冲区之后,生产者和消费者之间解耦了,比如超市的中间商,生产者向中间商发商品,超市向中间商进商品,而生产者并不知道商品买给谁了。分析这个模型有几个角色:第一个角色生产者,第二个角色消费者,它们两个是多线程,第三个是并发容器也就是缓冲区,第四个数据,比如汉堡。生产者往里面填数据,消费者往外面拿数据,所以缓冲区的并发操作存或...

2019-09-05 10:55:54 203

原创 多线程_22_并发协作_生产者消费者模式

生产者消费者模式我们都在肯德基里面吃过东西,kfc一般都很忙,别问我是怎么知道的,我以前可是kfc优秀员工,他们先把汉堡、薯条、鸡翅什么都准备好放在一个架子上,然后顾客过来买东西,前台员工只需要把顾客点的东西装起来拿给顾客就好了。那个架子就是图上的库。这样就可以实现解耦,我生产我的东西,你买你的东西,我们互不干涉。生产者消费者有两解决方式:第一种管程法,生产者只生产数据,放进入消息队列里面...

2019-09-04 15:25:02 161

原创 多线程_21_并发_死锁_产生与解决

在一个同步块同时持有两个以上对象的锁时,就可能会发生死锁的问题,死锁就是各自抱着资源不释放,比如一手交一手交货,商家说你给我钱我给你货,顾客说你给我货我给你钱,大家都不信任对方,造成尴尬的局面。还有就是小丫拿着镜子,想要口红,大丫拿的口红想要镜子,相互之间不礼让,就会造成死锁。仿写小丫和大丫这个案例package com.cb.thread.day05;/* * 死锁:过多的同步可能造成...

2019-09-04 10:12:07 364

原创 多线程_20_并发容器

import java.util.concurrent.CopyOnWriteArrayList;关键字:CopyOnWriteArrayListpackage com.cb.thread.day04;/* * 线程安全:操作并发容器 */import java.util.ArrayList;import java.util.List;import java.util.concu...

2019-09-03 16:09:04 140

原创 多线程_18_并发_同步_快乐影院_快乐火车票

案例一:这个案例是一个电影院选座,比如ab两个人同时选两个座,a选两个座,b选一个座,电影院就剩两个座,比如a先进去的,把两座选走,那b就会报出票失败,票已售罄。public class HappCinema { public static void main(String[] args) { Cinema c = new Cinema(2,"happy cb"); new Threa...

2019-09-03 15:50:36 5028

原创 多线程_17_并发_同步_synchronized方法和synchronized块

用synchronized关键字目标一定要对。上次模拟抢票的案例出现了负数问题,再在分析一下:假如就剩下一张票了(临界值),三个来抢票,假如B线程来了ticketNums=1,不少于等于0,然后延时200毫秒,此时还没有修改ticketNums的数据,还是等于1,然后A进来了,ticketNums的值等于1,也延时毫秒,然后C也进来了,延时200 毫秒,然后延时一过B就才把数据1拿走了,然后就没...

2019-08-30 10:02:15 206

原创 多线程_16_并发同步_队列与锁

并发:同一个对象多个线程同时操作,比如购买同一车次票。一定涉及到并发就会导致数据不准确问题,比如同一张票被多个人买到了,这称为线程不安全。那怎么使线程安全呢,比如只一台电脑,大家都想用怎么办,排队。跟据算法谁先用谁后用,保证一个 人上来用,其他人等着,等这个人用完了下一人用,还是用一个时间点一个线程线程在操作一个资源点,这样是保证了线程安全,这就是**队列**。怎么样才让别的线程的知道这个资源被...

2019-08-29 16:03:03 299

原创 多线程_15_并发_同步_三大经典案例

线程同步(synchronized):在一个多线程环境中,我们要保证数据的准确性和安全性,同时还要提高它的性能。并发:指同一对象多个线程同时操作![在这里插入图片描述](https://img-blog.csdnimg.cn/2019082910441353.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10...

2019-08-29 11:51:27 1564

原创 多线程_14_基本信息

线程常用其他方法练习 :package com.cb.thread.day03;public class InfoTest { public static void main(String[] args) throws InterruptedException { //查看线程是否活着 System.out.println(Thread.currentThread().isA...

2019-08-29 10:01:15 131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除