自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术小青年一枚

你做的每一件事都是你的作品

  • 博客(62)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 理解自我效能感:你的内在动力来源

自我效能感,由心理学家阿尔伯特·班杜拉提出,是指个体对于自己完成特定任务的能力的信念。例如,一位老师可能对自己在教学方面拥有高度的自我效能感,因为她历经多次成功的教学经验,相信自己能够有效地传授知识。这不仅仅是一种普通的自信感,而是更具体、更针对性的信念。班杜拉认为,自我效能感影响个体如何感知挑战、如何设定目标、以及他们在面对困难时的恒心和恢复力。个人的成功经验、通过观察他人成功获得的代理经验、来自他人的口头劝说,以及个人的情绪和生理状态。

2023-12-08 11:11:48 1019

原创 程序员的侦探故事:调试中的逻辑与直觉

在我们的编程之旅中,“bug”一词不仅是一个术语,它也象征着挑战和机遇的交汇点。就如Yogi Berra所言:“在理论上,理论和实践是相同的。在实践中,它们不是。”这句话深刻地揭示了调试的本质——一个理论与实践相结合的复杂过程。我们可以通过书本学习调试的技巧和策略,但只有在实际应用中,才能真正掌握它们的精髓。调试不仅是修复代码的技术活动,更是一场对逻辑、直觉和耐心的考验。它要求我们在面对未知的问题时保持冷静和专注,要求我们深入探索每一个错误背后的原因,而不是仅仅满足于表面的修复。

2023-12-01 11:48:24 875

原创 Java中绕过SSL/TLS验证:开发与风险透视

在日常的软件开发中,我们经常需要与其他服务进行HTTP通信。但在某些开发和测试场景下,我们可能会遇到由于证书问题导致的SSL握手失败。尽管解决这一问题的正确方式是确保所有服务都有有效的SSL/TLS证书,并且客户端配置了正确的信任存储,但在某些情况下,绕过SSL验证可能是一种快速解决问题的方法。

2023-11-26 16:10:01 1037

原创 Java CGLIB动态代理示例

1. CGLIB动态代理简介JDK动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。2. JDK动态代理与CGLIB区别JDK动态代理和CGLIB字节码生成的区别?JDK动态代理只能对实现了接口的类生成代理,而不能针对类...

2019-03-24 12:39:22 1069

原创 Java JDK动态代理示例

1. JDK动态代理原理JDK动态代理是java.lang.reflect.*包提供的方式,必须借助接口才能产生代理对象。在JDK动态代理中,要实现代理逻辑类必须实现java.lang.reflect.InvocationHandler接口,里面定义了invoke方法,并提供接口数组用于下挂代理对象。2. 动态代理实现步骤建立代理对象和真实对象的关系实现代理逻辑方法3. 代码示例...

2019-03-24 12:37:45 272

原创 Java类加载机制

Java类加载分为5个过程:加载、验证、准备、解析、初始化、使用、卸载。如下图所示:1. 加载加载主要是将.class文件(并不一定是.class,可以是zip包、网络中获取)中的二进制字节流读入到JVM中。在加载阶段,JVM需要完成3件事:通过类的全限定名获取该类的二进制字节流;将字节流所代表的静态存储结构转化为方法区的运行时数据结构;在内存中生成一个该类的java.lang....

2019-03-17 22:37:50 155

转载 请求转发和重定向区别

一、转发和重定向区别详解作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.sendRedirect 方法不仅可以重定向到当前应用程序中的其他资源,...

2019-03-17 21:20:56 9671 2

原创 Linux下执行wget无效问题

安装好后的CentOS 7想安装个redis学习下,发现不识别wget命令wget http://xxx.tar.gz原因是安装CentOS系统的时候安装的最小配置,默认没有安装wget,只需要yum -y install wget即可...

2019-03-16 20:36:55 7651 1

转载 Java编译期常量解释及其使用风险

编译期常量指的就是程序在编译时就能确定这个常量的具体值非编译期常量就是程序在运行时才能确定常量的值,因此也称为运行时常量定义上来说,声明为final类型的基本类型或String类型并直接赋值(非运算)的变量就是编译期常量,即:final int i = 4;final String str = "dasd";// 非编译期常量final String str1 = new Stri...

2019-03-12 12:29:30 360

原创 Java实现多线程的三种方法

实现多线程有三种方法继承Thread类实现Runnable接口实现Callable接口Java代码示例package thread;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;...

2019-03-05 22:39:23 1072

原创 Java四种线程池示例

Java通过Executors提供四种线程池,分别为:newCachedThreadPool:缓存线程池,大小不受限newFixedThreadPool:指定大小线程池,能够控制最大并发数newScheduledThreadPool:定长线程池,支持定时及周期性执行任务newSingleThreadExecutor:线程池数量为1的线程池,单线程串行执行所有任务代码示例:package...

2019-03-05 22:10:37 458

原创 Java实现单向链表反转示例

例如有一单向链表54->30->37->61->1->60->25->76->60->95原链表头节点54,尾节点:95实现效果:95->60->76->25->60->1->61->37->30->54新链表头节点95,尾节点54实现原理:从头

2019-02-15 12:52:11 2741 2

原创 数据库查询分页sql

MySQL -- 第2条开始(不包含第2条),查询3条数据select * from SYS_COE_PAL_REPOSITORY order by CREATEDATE desc limit 2,3;select * from SYS_COE_PAL_REPOSITORY order by CREATEDATE desc limit 3 offset 2;...

2019-02-14 21:50:50 337

原创 数据库面试题

今天面试时被问到一个数据库查询题,很简单,但是因为手边没电脑,所以没灵感,直接懵掉了,所以记录下来哈哈~有三张表:学生表(student:studentId,studentName);课程表(course:courseId,courseName);选课表(studentcourse:studentId,courseId);问题:统计出所有学生的选课数量student:cours...

2019-01-16 20:23:28 507

原创 Java集合-Map集合

集合类KeyValueSuper线程安全?数据结构HashMap允许为null允许为nullAbstractMap线程不安全JDK1.8 数组+链表+红黑树;JDK1.7 数组+链表TreeMap不允许为null允许为nullAbstractMap线程不安全红黑树ConcurrentHashMap不允许为null不允许为nullAb...

2019-01-02 13:05:08 122

原创 Java类加载执行顺序

简要记录类的加载执行顺序:先说结论:父类静态(块/变量)–>子类静态(块/变量)–>父类普通(变量/块)–>父类构造器–>子类普通(变量/块)–>子类构造器具体执行过程:程序先找到main函数,不管此时有没有使用new进行创建对象,都会将涉及到的类(例如父类)进行类加载;发现Son类有一个父类Father类;初始化有关Father类的静态变量与静态块(顺...

2018-12-27 22:18:18 289

原创 设计模式-命令模式(Command)

概念:命令模式是一个高内聚模式。命令模式中,所有的请求都会包装成为一个对象,并传给调用者,调用对象寻找可以处理该命令的对象,并把命令传递给相应的对象,该对象执行命令。类型:行为型设计模式优劣:优点:类间解耦:调用者角色与接收者角色之间没有任何依赖关系(下方例子中调用者实现功能只需调用Command抽象类的execute方法就可以,不需要了解到底是哪个接收者执行的)可扩展性好:Comm...

2018-12-17 12:43:53 139

原创 设计模式-外观模式(Facade)

概述:外观模式隐藏了系统的复杂性,并像客户端提供了一个客户端可以访问系统的接口。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用(客户端需要调用一个子系统时通过中间类“门面”来间接调用,门面提供了访问子系统方法的入口方法)。优劣:优点:减少系统相互依赖;提高灵活性;提高安全性;缺点:不符合开闭原则,改东西麻烦,继承重写都不合适;使用场景:为复...

2018-12-16 13:35:01 164

原创 设计模式-策略模式(Strategy)

概述:在策略模式中,定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。白话解释:策略模式是对算法的封装,把一系列的算法封装到对应的类中类型:行为类模式优劣:优点:算法可以自由切换;避免使用if else等多重判断;扩展性高;缺点:策略类随着算法的增加会增多;所有策略类都需要对外暴露类图:示例:定义抽象类package test.strategy;/** * 策...

2018-12-16 13:33:58 214

原创 设计模式-抽象工厂模式(Factory)

概念:抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。在抽象工厂模式中,接口是负责创建一个相关对象的工厂优劣;优点:低耦合,扩展性高缺点:每增加一个产品或产品族或者一个新的工厂,都需要改动若干个类,改动量大类示意图:示例:定义图形接口package test.Factory2;/** * 图形接口 * @author sunlh * */...

2018-12-16 13:33:06 128

原创 设计模式-简单工厂模式(Factory)

概念:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式,它提供了一种创建对象的最佳方式。优劣:优点:调用对象时只需要知道对应对象参数就可以创建;扩展性高;面向接口编程,屏蔽对象的具体实现。缺点:每次增加一个产品,都需要增加一个具体产品类和对应的工厂调用分支,增加了复杂度和具体类的依赖。使用场景:日志记录器,日志分类、日志记录位置都可以通过工厂模式控制;数据库...

2018-12-16 13:31:44 136

原创 设计模式-观察者模式2(Observer)

Java内置观察者模式示例在Java中通过Observable类和Observer接口实现了观察者模式。一个或多个Observer对象监视着一个Observable对象的变化,当Observable对象发生变化时,Observer得到通知,就可以进行相应的工作。package test.observer.java;import java.util.Observable;/** * 被...

2018-12-16 13:30:15 210

原创 设计模式-观察者模式1(Observer)

概念:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。使用场景:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。优劣:优点:观察者和被观察者是抽象耦合,松耦合;缺点:被观察者(目标)对象有很多直接或间接的观察者时,通知时间变长;观察者与被观察者相互依赖、通知的话会造成死循环系统崩溃;观察者...

2018-12-16 13:29:45 212

原创 设计模式-适配器模式(Adapter)

定义:将一个类的接口转换成客户希望的另外一个接口,作为两个不兼容的接口之间的桥梁优劣:优点:可以让没有关联的两个类在一起运行,提高了类的复用,灵活性好缺点:过多地使用适配器,会让系统非常零乱,系统整体不易把控;由于Java只能继承一个父类地特性,所以至多只能适配一个适配者类,而且目标类必须是抽象类使用场景:修改一个正常运行的系统接口,应该考虑使用适配器模式注意事项:适配器不是在详细设...

2018-12-16 13:29:12 225

原创 设计模式-单例模式(Singleton)

单例模式定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供要点:某个类只能有一个实例(类只提供私有的构造函数)它必须自行创建这个实例(类定义中含有一个该类的静态私有对象)它必须自行向整个系统提供这个实例(该类提供了一个静态的公有的函数用于创建或者获取它本身的静态私有对象)构建方式:懒汉方式:指全局的单例实例在第一次被使用时构建饿汉方式:指全局的单例实例在类装载时构建...

2018-12-16 13:27:21 126

原创 设计模式-装饰器模式(Decorator)

装饰器模式定义:用于替代继承,无需通过继承增加子类就能扩展对象的新功能。作用:用于包装原有的类,并在保持类方法签名完整性的前提下,提供额外的功能。优劣:优点:装饰类和被装饰类可以独立发展,不会耦合,装饰器模式是继承的一个替代方案,实现动态扩展功能。缺点:多层装饰比较复杂与代理模式区别:装饰器模式是为了增强功能,而代理模式是为了加以控制用代理模式,代理类(prox...

2018-12-16 13:24:27 178

原创 设计模式-代理模式(Proxy)

代理模式定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。何时使用:想在访问一个类时做一些控制。作用:中介隔离作用开闭原则,增加功能(扩展中介功能)代理模式分类:静态代理动态代理(JDK动态代理、CGLIB动态代理),不在此介绍静态代理优劣:优点:高扩展性缺点:增加代理对象可能会造成...

2018-12-16 13:22:10 151

原创 数据结构与算法2

数据结构与算法常见基础问题总结什么是数据结构?数据结构是指相互之间存在一种或多种特定关系的数据结构集合。即数据和数据之间的关系。数据的存储结构是怎样的?分为顺序存储和链式存储。顺序存储类似食堂打饭排队,中间加塞需要后面的人全部后移;链式存储类似银行取号机制排队办理业务,依靠号码进行排队,加塞只需给个最小号-1就可以。数据的逻辑结构是什么?分为线性结构、树形结构、集合(哈希表)结构...

2018-11-28 21:43:12 394

原创 数据结构与算法1

数据结构与算法学习路径

2018-11-28 21:40:02 197

原创 Java 访问修饰符public,private,protect,default的区别

访问修饰符 同一个类 同一个包 不同包中的子类 不同包的非子类 public √ √ √ √ protect √ √ √ × default √ √ × × private √ × × ×...

2018-08-04 11:13:54 1286

原创 Java String、StringBuffer、StringBuilder的区别

String、StringBuffer、StringBuilder的区别如下:String类是字符串的首选类型,其最大的特点是内容不允许修改StringBuffer类与StringBuilder类的内容允许修改StringBuffer是在JDK1.0的时候提供的,属于线程安全的操作;而StringBuilder是在JDK1.5的时候提供的,属于非线程安全的操作附:StringBuf...

2018-07-31 21:08:08 109

原创 Java 高级编程-IO编程,对象序列化&反序列化

1. 对象序列化基本概念2. 序列化与反序列化3. transient关键字 学习阿里云大学零基础学Java系列 Java高级编程1. 对象序列化基本概念几乎只要是Java开发就一定存在有序列化的概念,而正是因为有序列化的概念,逐渐也有了更多的序列化标准。所谓的对象序列化指的是将内存中保存的对象以二进制数据流的形式进行处理,可以实现对象的保存或者网络传输...

2018-07-12 21:14:36 177

原创 Java 高级编程-输入与输出支持

1. 打印流2. System类对IO的支持3. BufferedReader缓存输入流4. Scanner扫描流 学习阿里云大学零基础学Java系列 Java高级编程1. 打印流如果现在要想通过程序实现内容的输出,核心的本质一定要依靠OutputStream类完成,但是OutputStream类有一个最大的缺点,这个类中的数据输出操作功能有限(public...

2018-07-09 20:51:27 1077

原创 Java 高级编程-IO操作深入

1. 字符编码2. 内存操作流3. 管道流4. RandomAccessFile随机存储类 学习阿里云大学零基础学Java系列 Java高级编程1. 字符编码在计算机的世界里面只认0、1的数据,如果想描述一些文字的编码就需要对这些二进制的数据进行组合,所以才有了现在可以看见的中文,但是在进行编码的时候如果要想正确显示出内容则一定需要有解码,所以编码和解码肯定要采...

2018-07-01 21:35:08 511

原创 Java 高级编程-文件拷贝

1. 文件拷贝2. 文件夹拷贝1. 文件拷贝package IOKnowledge;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStrea...

2018-06-28 19:56:13 181

原创 Java 高级编程-IO字节流与字符流

1. 简介2. 字节输出流OutputStream3. 字节输入流InputStream4. 字符输出流Writer5. 字符输入流Reader6. 字节流与字符流的区别7. 转换流 学习阿里云大学零基础学Java系列 Java高级编程1. 简介在Java.io包里面File类是唯一一个与文件本身有关的程序处理,但是File只能够操作文件本身而不能够操作文...

2018-06-27 21:29:31 261

原创 JQuery数组深度复制

把arr数组内容复制到copyArr数组中,并且复制完成后两个数组对内容修改时互不影响 一句话就可以,非常方便var copyArr = $.extend(true, [], arr);

2018-06-26 14:08:47 5827

原创 JQuery字符串文本替换并且加样式

<!DOCTYPE html><html><head><meta charset="utf-8"> <title>JQuery字符串文本替换并加样式</title> <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.

2018-06-25 16:09:53 4112

原创 Java 高级编程-File文件操作类

1. File类说明2. File类的基本使用3. File类深入操作4. 获取文件信息5. File操作案例:列出指定目录中的全部文件6. File操作案例:批量修改文件名称 学习零阿里云大学零基础学Java系列 Java高级编程1. File类说明在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行...

2018-06-14 22:30:54 1224

原创 互联网应用架构中负载均衡器的作用

在互联网高并发的场景中,用户请求一般会经过负载均衡,然后再经由负载均衡器对请求分发到某一天web服务器上对请求进行处理 摘自《Java EE 互联网轻量级框架整合开发》对于负载均衡器,一般有以下几个功能:1. 对业务请求进行初步分析对业务请求进行初步的分析,决定分不分发请求到web服务器,好比一个把控的关卡,常见的分发软件比如Nginx和Apache等反向代理服务器,它...

2018-06-13 21:08:23 684

pagehelper jar包

pagehelper jar包,欢迎下载,欢迎下载,欢迎下载 pagehelper-5.0.0.jar jsqlparser-0.9.5.jar

2017-10-17

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

TA关注的人

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