java
Dingwensheng1222
一个爱学习的渣渣辉
展开
-
接口和抽象类的区别
接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一个类...转载 2018-03-31 12:25:04 · 125 阅读 · 1 评论 -
ssm框架搭建详细步骤
一、创建一个web项目,并且导入相应的jar包(spring\spring-core\spring-jdbc\spring-aop\spring-context\spring-webmvc\junit\commons-lang\mybatis\mybatis-spring等等)二、配置web.xml文件 1、配置监听器listener(类型为ContextLoaderListener),用于...转载 2018-07-04 15:43:43 · 1660 阅读 · 0 评论 -
MyBatis逆向工程自动生成代码
什么是逆向工程MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。使用逆向工程使用MyBatis的逆向工程,需要导入逆向工程的jar包,我用的是...转载 2018-07-05 10:58:17 · 226 阅读 · 0 评论 -
sun的命名规范
1 ,类名要首字母大写,后面的单词首字母大写 2 ,方法名的第一个单词小写,后面的单词首字母大写 3 ,变量名的第一个单词小写,后面的单词首字母大写 为了使 JavaBean 的属性名和存取方法都符合规范, Sun 在 JSR 文档中规定了属性名和存取方法名的映射规则: ① 属性名对应的存取方法为 ge t/set 加上首字母大写的属性名,如属性 userName 的存取方法为 setUse...原创 2018-07-25 13:38:37 · 666 阅读 · 0 评论 -
classpath路径的使用
【01】 src路径下的文件在编译后会放到WEB-INF/clases路径下。默认的classpath是在这里。直接放到WEB-INF下的话,是不在classpath下的。用ClassPathXmlApplicationContext当然获取不到。【02】如果单元测试的话,可以在启动或者运行的选项里指定classpath的路径的。用maven构建项目时候resource目录就是默认的class...原创 2018-07-22 19:50:19 · 528 阅读 · 0 评论 -
解决文件上传成功但是eclipse的工程中没有上传的文件
本文主要介绍一个新手开发JavaWeb容易遇到的问题。在做一个文件上传功能时候,提示文件上传成功但是eclipse的工程中(如:upload文件夹)没有上传的文件。eclipse在开发Javaweb工程时候,有两个文件路径:开发时的工程路径,一般是workspace路径(如:d:\workspace\project_upload ) 发布时的工程路径,根据在eclipse中新建...转载 2018-11-14 09:49:01 · 1186 阅读 · 2 评论 -
Error : You have an error in your SQL syntax; check the manual that corresponds to your My
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order LIMIT 0, 1000' at line 1 今天在查询数据的时候遇到这个错误,特别的郁闷,感觉...转载 2018-11-28 17:13:08 · 5906 阅读 · 0 评论 -
sql中decode(...)函数的用法
sql中decode(...)函数的用法相当于if语句decode函数比较1个参数时SELECT ID,DECODE(inParam,'beComparedParam','值1' ,'值2') name FROM bank#如果第一个参数inParam=='beComparedParam',则select得到的name显示为值1,#如果第一个参数inParam!='beComp...转载 2019-07-08 20:58:18 · 9190 阅读 · 0 评论 -
rank() over,dense_rank() over,row_number() over的区别
rank() over,dense_rank() over,row_number() over的区别1.rank() over:查出指定条件后的进行排名。特点是,加入是对学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占的名次。select name,subject,score,rank() over(partition by subject order by score d...转载 2019-07-12 19:08:47 · 147 阅读 · 0 评论 -
Feign使用Hystrix(断路器的使用)
前言在springcloud中,为Feign添加回退更加简单。事实上,springcloud默认已为Feign整合了Hystrix,要想为Feign打开Hystrix支持,只需要设置feign.hystrix.enabled=true即可。编码1.复制项目microservie-consumer-movie-feign,将ArtifactId修改为microservice-consum...转载 2019-07-25 18:27:20 · 1483 阅读 · 0 评论 -
java反射与动态代理的理解
一、什么是反射机制? 反射的官方定义是这样的:在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。 讲的通俗一点的话就是,对于jvm来说,.java文件必须要先编译为.class文件才能够被jvm执行,所以在编译为.class文件的过程中,对象的类...转载 2019-07-26 20:19:26 · 152 阅读 · 0 评论 -
mybatis中返回list集合为空的解决方法
mybatis中返回list集合为空的解决方法一.本人出现的问题是sql语句没报错,但是由于忽略了已修改的代码的传递参数的值,导致查询出来的结果为空,在controller中的参数互换一下就有值了二.用mybits查询数据库时,如果参数已传入sql,sql也已经执行了,但是返回结果为空,首先保证数据库中有对应数据,如果有对应数据仍返回null,是数据库配置文件有问题。解决方案如下:1、m...原创 2019-08-07 17:07:59 · 2577 阅读 · 0 评论 -
Jedis API使用
测试String @Test public void stringTest(){ jedis.select(2); jedis.set("username","dingwensheng"); System.out.println(jedis.get("username"));; jedis.close(); ...原创 2019-08-19 17:14:48 · 160 阅读 · 0 评论 -
如何将java.util.Date传给mybatis作为查询条件
1.第一种方式and sh.order_date = DATE_#{orderDate,jdbcType=DATE} xml里面直接使用,,jdbcType=DATE注意传参时yyyy-mm-dd HH:mm:ss要使用此格式(mybatis默认时间格式)2.第二种方式DATE_FORMAT(sh.order_date,'yyyy-MM-dd') = DATE_FO...原创 2019-08-15 16:37:11 · 2645 阅读 · 0 评论 -
mybatis ${parameterType}和#{parameterType}的区别
#{}表示占位符?,#{}接收简单类型的参数时,里面的名称可以任意${}表示拼接符,${}接收简单类型的参数时,里面的名称必须是value${}里面的值会原样输出,不加解析(如果该参数值是字符串,有不会添加引号)${}存在sql注入的风险,但是有些场景下必须使用,比如排序后面会动态传入排序的列名...原创 2019-08-12 16:13:18 · 176 阅读 · 0 评论 -
Java序列化
Java 序列化Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。整个过程都是 Java 虚拟机(JVM)独立的,也就是说,在一...原创 2019-08-22 16:52:24 · 178 阅读 · 0 评论 -
Spring中使用RedisTemplate(spring-data-redis)操作Redis常用API
使用ListOperations操作redis使用ListOperations对象操作redis list:方法 c参数 s说明 List<V> range(K key, long start, long end); K key:集合key long start:起始位置 long end:结束位置 ...原创 2019-09-17 09:56:13 · 513 阅读 · 0 评论 -
eclipse中applet嵌入html
問題就是用eclipse寫了個applet,用了package,然後創建一個html文件,嵌入applet後無法運行,如果不用package,而直接把程序拷到defaultpackage的文件中卻可以。http://topic.csdn.net/u/20080913/13/2d33fec4-c4a3-4349-b3d7-06fadce7d024.html忽略了package的後果源文件helloa...原创 2018-07-01 16:40:08 · 1875 阅读 · 0 评论 -
用信号量机制实现吃冰淇淋问题(pv操作)
PV操作的简单理解一、什么是PV操作 在操作系统中,进程是一个很要花时间理解的东西,进程通常分为就绪、运行和阻塞三个工作状态。三种状态在某些条件下可以转换,三者之间的转换关系如下: 进程三个状态之间的转换就是靠PV操作来控制的。PV操作主要就是P操作、V操作和信号量。其中信号量起到了至关重要的作用。1、什么是信号量? 信号量(semaphore...原创 2018-05-07 22:33:10 · 765 阅读 · 0 评论 -
java常用方法
第一章 字符串 1 、 获取字符串的长度: length() 2 、 判断字符串的前缀或后缀与已知字符串是否相同 前缀 startsWith(String s) 、后缀 endsWith(String s) 3 、 比较两个字符串: equals(String s) 4 、 把字符串转化为相应的数值 int 型 Integer.parseInt( 字符串 ) 、 long 型 Long.parse...转载 2018-04-19 16:17:52 · 247 阅读 · 0 评论 -
instanceof的使用
instanceof的功能是检查引用指向的对象是否可以看作指定的类型。基本语法规则如下:<引用> instanceof<类和接口类型> 测试如下package Instancepf;interface IFather{ }interface Ison extends IFather{ }class Father{ }class So...原创 2018-04-01 12:52:10 · 273 阅读 · 0 评论 -
static与非static的区别
关于static和非static变量的区别。1. static 修饰的变量称为类变量或全局变量或成员变量,在类被加载的时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。非static修饰的成员变量是在对象new出来的时候划分存储空间,是与具体的对象绑定的,该成员变量仅为当前对象所拥有的。2. static修饰的变量在加载的时候先于main方法加载在内存中的数据共享区------...转载 2018-04-01 13:06:10 · 3189 阅读 · 0 评论 -
单列模式
即某个类中同一时刻只允许有一个对象;单列模式的使用一般是为了节省系统资源。示例:class Singleton{ private static Singleton s; public static Singleton getInstance() { if(s==null) { s=new Singleton(); } return s; } priva...原创 2018-04-01 13:54:09 · 186 阅读 · 0 评论 -
java程序加载过程
在java中,当创建一个对象时总的加载过程如下:首先加载要创建对象的类及其直接与间接父类。在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序执行。需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序执行。最后执行构造器,构造器执行完毕,对象生成。class ...原创 2018-04-01 14:37:26 · 644 阅读 · 0 评论 -
Swing常用控件
javax.swing包中的常用组件:—容器组件JFrame(框架)JDialog(多窗体程序以及窗体间传递数据)JPanel(面板)JScrollPane(滚动面板)—文本组件JLabel、JTextField、JPasswordField、JTextArea—表单组件JButtonJCheckBoxJRadioButton和ButtonGroupJComboBoxjavax.swing.JDi...转载 2018-04-14 18:52:10 · 1482 阅读 · 0 评论 -
JAVA图形界面(GUI)之布局管理器
一个友好的读者界面是一款软件成功的关键因素之一。布局管理器就是用来管理读者的界面。摆放的效果直接影响到界面是否美观。布局管理器通过布局管理类来对各种读者组件进行管理。 使用布局管理器,不仅可以有序的排列组件,而且当窗体发生变化时,布局管理器很根据新版面来适配窗口大小。 如果设计时未指定组件的布局管理器,则使用默认布局管理器。默认布局管理器层次关系如图所示: 下面为大家介绍几种常用的布局管理器。Bo...转载 2018-04-14 18:58:07 · 468 阅读 · 0 评论 -
外部类之外创建内部类对象
(1) <外部类类名>.<内部类类名> 引用变量=<外部类对象引用>.new<内部类构造器>;(2) <外部类类名>.<内部类类名> 引用变量=new <外部类构造器>.new <内部类构造器>;package lbl1;class Outer{ class Inte原创 2018-04-09 18:30:24 · 1686 阅读 · 0 评论 -
maven(一) maven到底是个啥玩意~
该篇文章篇幅很长,大概的思路如下 maven的介绍,初步认识,获取jar包的三个关键属性 --> 介绍仓库(获取的jar包从何而来)-->用命令行管理maven项目(创建maven项目) --> 用myeclipse创建maven项目 -->详细介绍pom.xml中的依赖关系(坐标获取、定位jar包的各种属性讲解。 ...转载 2018-04-10 09:01:04 · 132 阅读 · 0 评论 -
java正则表达式
java 正则表达式 语法 示例概要:Java正则表达式的语法与示例| |目录1匹配验证-验证Email是否正确2在字符串中查询字符或者字符串3常用正则表达式4正则表达式语法1匹配验证-验证Email是否正确Java | 复制1234567891011121314public static void main(String[] args) { // 要验证的字符串 String str...转载 2018-04-02 22:37:01 · 188 阅读 · 0 评论 -
Java多线程学习(总结很详细!!!)
此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢? 本文主要讲java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的线程函数用法、概述等。首先让我们来了解下在操作系统中进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--...转载 2018-04-10 19:28:12 · 185 阅读 · 0 评论 -
集合
一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是...转载 2018-04-10 19:32:12 · 193 阅读 · 0 评论 -
Java equals()方法使用详解及总结
equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下:?123public boolean equals(Object obj) { return (this == obj); } 我们知道所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较两个对象的的内存地址,所以说使用Object的eq...转载 2018-04-03 23:24:37 · 368 阅读 · 0 评论 -
自定义线程池ThreadPoolExecutor参数设置
JDK1.5中引入了强大的concurrent包,其中最常用的莫过了线程池的实现ThreadPoolExecutor,它给我们带来了极大的方便,但同时,对于该线程池不恰当的设置也可能使其效率并不能达到预期的效果,甚至仅相当于或低于单线程的效率。ThreadPoolExecutor类可设置的参数主要有:corePoolSize核心线程数,核心线程会一直存活,即使没有任务需要处理。当线程数小于核心线程...转载 2018-04-11 17:46:49 · 992 阅读 · 1 评论 -
Java多线程编程:Callable、Future和FutureTask浅析
通过前面几篇的学习,我们知道创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结果该如何实现呢?还记上一篇Executor框架结构中提到的Callable接口和Future接口吗?,是的,从JAVA SE 5.0开始引入了Callable和Future,通过它们构建的线程,在任务...转载 2018-04-11 20:38:53 · 155 阅读 · 0 评论 -
Lock锁
Lock锁简介Lock锁机制是JDK 5之后新增的锁机制,不同于内置锁,Lock锁必须显式声明,并在合适的位置释放锁。Lock是一个接口,其由三个具体的实现:ReentrantLock、ReetrantReadWriteLock.ReadLock 和 ReetrantReadWriteLock.WriteLock,即重入锁、读锁和写锁。增加Lock机制主要是因为内置锁存在一些功能上局限性。比如无法...转载 2018-04-12 09:45:07 · 167 阅读 · 0 评论 -
java8-流的操作
流的操作流的使用一般包括三件事:一个数据源来执行一个查询;一个中间操作链,形成一条流的流水线;一个终端操作,执行流水线,并能生成结果中间操作操作 类型 返回类型 操作参数 函数描述符 filter 中间 Stream Predicate T -> boolean map 中间 Stream Fu...转载 2019-09-23 14:22:30 · 247 阅读 · 0 评论