自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

there is a will, there is a way

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

原创 synchronize实现原理及锁升级

在刚接触jdk5的时候,网上都说能尽量不实用synchronize就不用,同时有替代方案,比如轻量级锁,locks,但是在jdk6之后对synchronized有了优化。应用场景既然引入了同步锁的概念,那啥时候可以用?当然是处在共享资源且有多个线程可能对其操作的情况。比如定义了一个全局变量,由多个线程对其进行+1操作,如果让不同的线程来执行,在操作时获取到的值可能是旧的,这就会导致最终的结果跟预期不一致,这时我们就需要保证其安全性。既然说到保证安全性,那么肯定会对程序执行的效率产生影响,毕竟这是一个互

2020-08-30 16:28:11 431

原创 线程的状态和启停

线程的状态和启停状态线程的状态分别为:new在新建后的线程,状态就会变成new,比如new Thread(()->{ System.out.println("i am print");});//或者实现runnable接口,其实Thread就实现了runnable接口runnable当调用了线程的.start()方法时,就处于待执行的状态terminate当线程执行完毕后,处于终止状态,可以根据Thread.currentThread().isAlive()来判断线程

2020-08-30 10:47:01 386

原创 环境变量配置

在redhat7.0配置java_homevi /etc/profileexport JAVA_HOME=/tiger/app/jdk1.8.0_211export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/binexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar...

2019-06-22 11:07:55 206

原创 Windows10系统关闭visual studio实时调试器的方法

最近使用vs进行开发一些小工具,但是发现,系统整天弹出实时调试器,提示wininit.exe某个进程报错,由于权限不够,但是我一点取消它又弹出来,网上找了很多办法,比如删除注册表那些,都不行,下载360整个下午扫毒都没用。最后我通过任务管理器,打开相应的进程,然后打开文件所在位置,在属性中,把所有角色的权限都设置为完全控制,到目前位置还没有弹出那个提示了。希望对大家有用...

2018-11-06 17:31:12 3866

原创 sqlserver突然连接不了,sa用户突然登录失败

用户 'sa' 登录失败。 (.Net SqlClient Data Provider),或者使用.登录提示18456,无论使用sa还是windows认证都无法登录,但是可以尝试一下服务sql server browser是否启动,如果不是,则将其启动启动完毕后,重启sqlserver服务,然后,重点:以管理员身份运行数据库!再次进行连接,发现连接成功! 更新于18-10-26 今...

2018-10-17 21:51:21 9351

原创 字节序列

date: 2016-08-18 9:25:00 title: 字节序列 categories: 《深入理解计算机系统》读后感 版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目录备注。对于跨越多个字节的程序对象有两个重要的规则:该程序对象在虚拟内存中

2017-11-02 21:27:58 9578

原创 二叉树面试题汇总(二)

date: 2016-08-18 9:17:00 title: 二叉树面试题汇总(二) categories: 数据结构版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目录备注。二叉树的先序遍历递归法思路:二叉树的先序、中序、后序遍历使用递归法实现非常

2017-11-02 21:26:12 344

原创 二叉树面试题汇总(一)

title: 二叉树面试题汇总(一) categories: 数据结构 date: 2016-08-18 9:16:00版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目录备注。计算二叉树的总结点数树的定义:public class BinaryTree

2017-11-02 21:23:34 2861

原创 理解递归

date: 2016-08-18 9:10:00 title: 理解递归 categories: 数据结构版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目录备注。在接下来的更新列表中,会接触到树,图相关知识点,又因为树、图是非线性结构,并且树是递归定义

2017-11-02 21:21:30 404

原创 数据结构之链表面试题汇总(四)得到两个单链表相交的第一个交点、用O(1)的时间效率删除单向链表中的指定节点

date: 2016-08-18 9:15:00 title: 数据结构之链表面试题汇总(四)得到两个单链表相交的第一个交点、用O(1)的时间效率删除单向链表中的指定节点 categories: 数据结构版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目

2017-11-02 21:20:31 405

原创 数据结构之链表面试题汇总(三)判断单链表是否有环、取出环的起始点、得到有环链表中环的长度

title: 数据结构之链表面试题汇总(三)判断单链表是否有环、取出环的起始点、得到有环链表中环的长度 date: 2016-08-18 9:14:00 categories: 数据结构版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目录备注。判断单链表

2017-11-02 21:17:48 583

原创 数据结构之链表面试题汇总(二)-有序单向链表的合并、单向链表反转

date: 2016-08-18 9:13:00 title: 数据结构之链表面试题汇总(二)-有序单向链表的合并、单向链表反转 categories: 数据结构版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目录备注。合并两个有序的单向链表,合并之后的

2017-11-02 21:16:51 710

原创 数据结构之链表面试题汇总(一)--查找单向链表的中间节点、倒数第K个节点

date: 2016-08-18 9:12:22 title: 数据结构之链表面试题汇总(一)–查找单向链表的中间节点、倒数第K个节点categories: 数据结构版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目录备注。这篇文章主要讨论单向链表的应用,

2017-11-02 21:14:56 614

原创 数据结构之栈和队列

date: 2016-08-18 9:11:00 title: 数据结构之栈和队列 categories: 数据结构版权声明:本站采用开放的[知识共享署名-非商业性使用-相同方式共享 许可协议]进行许可所有文章出现的代码,将会出现在我的github中,名字可以根据类全名来找,我在github中的文件夹也会加目录备注。数据结构中的栈和队列的异同点相同点栈和队列都属于线性结构,即除了首尾元素之外,

2017-11-02 21:13:21 1343

原创 Java支持的数据类型有哪些?什么是自动拆装箱?

java中的8种基本数据类型:boolean byte char short int float double long 自动拆装箱的问题引入:由于在一开始学习java的时候,”万物皆对象“这种面向对象的看问题方式,时刻围绕在脑海中。因为静态的变量和基本数据类型不属于对象,但是由8种基本数据类型的包装类解决了这个困惑。在jdk1.5中引入了自动拆装箱的新特性,在jdk1.5之前,我们想要使用inte

2016-03-03 00:03:41 6927

转载 oracle的练习

1、按如下格式输出: 解: 2、输出员工大于其部门平均薪水的信息 子查询: 相关子查询: 3、查询薪水最高的前三位,并且按顺序输出:

2016-03-02 19:43:31 354

原创 sql语句的调优

尽量使用列名来查询:(在Oracle9I之前的版本,在其之后,Oracle对* 进行了优化,让的 功能跟列名一样。)在Oracle9I以前的版本,当读取到的时候,首先要在对应的表里面查 询有哪些列,然后再做查找,不管表包含列的多少,都需要时间where语句中,使用逻辑运算符过滤的时候:是从右往左解析的, 所以在面对and过滤的 时候,尽量把可能出错的放在右边。or过滤的时候,尽量把正

2016-03-02 19:35:21 406

原创 sql语句中的空值(null)

含null值的表达式都为nullnull != null 在判断某个数是否为null的时候不是用等号来表示,而是用 is null在过滤的时候,可以使用in null,但是使用not in null的时候会报错 因为in函数,是指满足里面的情况, 举个例子: sal not in(10,20,null) (Sal not in 10) and (sal not in 20) and (s

2016-03-02 19:25:47 5350

原创 Oracle知识点

在接下来的三篇关于oracle文章,是在上学期写好的,当时怕忘记,都是一些关于oracle的细节以及易错点,现在贴上来 知识点:delete与truncate的区别:Delete是DMl(data mutipulation language)语言,truncate是 DDL(data defination language)语言,dml语言可以回滚(rollback),ddl不能Dele

2016-03-02 18:57:39 392

原创 ”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

static关键字在《java编程思想》中有这样一段话形容static关键字: 通常,我们创建类时会指出那个类的对象的外观与行为。除非用new 创建那个类的一个对象,否则实际上并 未得到任何东西。只有执行了new 后,才会正式生成数据存储空间,并可使用相应的方法。 但在两种特殊的情形下,上述方法并不堪用。一种情形是只想用一个存储区域来保存一个特定的数据——无 论要创建多少个对象

2016-03-02 16:44:31 18909

原创 jdk和jre的区别

jdk: java development kit —-》 java开发工具包jre: java runtime environment —》 java运行环境当我们需要开发java程序的时候,我们需要使用jdk,如果只是简单的执行java程序,单单下载jre即可图侵删:

2016-03-02 13:20:40 261

原创 什么是JVM?java被称作是平台无关的编程语言?

要知道java虚拟机是什么,从虚拟机定义开始:虚拟机是模拟某种计算机体系结构,用来执行某种特定指令集的软件。 虚拟机分成系统虚拟机(VM ware 、Virtual box)和进程虚拟机(adobe flash player 、JVM等等),如果进一步细分,再加上高级语言的筛选,就有jvm、.net ClR 。怎样才算是JVM ?要成为jvm,要通过java tck(technology comp

2016-03-02 11:40:49 3652 2

原创 标识符及其命名规范

标识符定义:像类名,包名,变/常量名,方法名,由开发人员自定义的名字,都属于标识符。命名规范:规范起初是一种习惯,因为大家都使用这种方式,所以变成了规范。类名:每个单词的首字母大写。例如:Person ActionBase 包名:包名的所有字母都要小写。方法名:首单词的首字母小写,从第二个单词开始,单词首字母大写。变量名:跟方法名的规范一样。常量:每个字母都要大写,各个单词用下划线隔开。

2015-10-30 18:00:20 1100

原创 Oracle表的创建和管理

在上一篇博文中我们讨论到了DML、DDL、DCl,其中DDL是关于表结构的操作,也就是说我们是主要在讨论DDL表的创建除了传统的建表方法:create table 表名 (列名1 类型,列名2 类型,…)。在上一篇博文中,我们说到了在为表增加记录时的批处理,其中,我们也可以利用那种方法为我们创建表,只是我们不需要其中的数据,而是只要那张表的结构,这时候我们只要加上一个假条件即可 如上图所示,1=2

2015-10-02 16:45:16 378

原创 Oracle数据处理

在分析Oracle数据处理之前,先来了解一下SQL可以分为那几种语言 1、DML:data management language 数据管理语言 包括数据的增删改查,在Oracle中我们管crud叫dml 2、DDL : data defination language 数据定义语言 包括表的创建,修改,销毁 3、DCL: data control language 数据控制语言 这里指的

2015-10-02 15:58:36 454

原创 Oracle集合操作

SQL> --需求:查找部门号为10和部门号为20的员工SQL> /*SQL> 查询方法:SQL> 1、select * from emp where deptno=10 or deptno=20SQL> 2、select * from emp where deptno in (10,20)SQL> 3、集合运算SQL> 集合运算是操作两个或两个以上的集合SQL> 所以集合

2015-10-01 16:50:05 300

原创 oracle子查询

SQL> --可以在where select from having后放置子查询SQL> --在select后面放置子查询SQL> select ename,sal,(select job from emp where empno=7839) 2 from emp;ENAME SAL (SELECTJO

2015-10-01 12:51:24 350

原创 oracle多表查询

SQL> --在了解多表查询之前,我们首先要了解一下笛卡儿积。SQL> --在之前的数据库课程中,我们学习到,笛卡儿积就是所有可能的结果集合SQL> --那么里面的结果是把所有可能的结果列举出来,其中很多数据是错误的SQL> --那么我们要使用连接条件来得到我们想要的正确信息SQL> --在多表查询中,我们主要学习的就是连接条件SQL> --连接条件分为等值/不等值连接,外连接,自连接S

2015-09-30 16:37:23 382

原创 Oracle多行函数/组函数

SQL> --多行函数又叫组函数,作用于一组函数,返回一个数据,例如求一组数据的最大/最小值SQL> --多行函数常用的方法有:avg(平均值)/max/min/count/sumSQL> --求工资的总额SQL> select sum(sal) 2 from emp; SUM(SAL)

2015-09-30 13:09:47 330

原创 Oracle单行函数

SQL> --字符函数SQL> select lower('Hello WORLd') 转小写,upper('Hello WORLd') 转大写, 2 initcap('hello world') 首字母大写 3 from dual;转小写 转大写 首字母大写

2015-09-30 10:52:52 267

原创 过滤和排序

SQL> --查询部门为10号的员工SQL> select * 2 from emp 3 where deptno=10; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

2015-09-29 19:11:06 407

原创 Oracle的基本查询

SQL> --清屏SQL> host clsSQL> --当前用户SQL> show userUSER 为 "SCOTT"SQL> --当前用户下的表SQL> select * from tab;TNAME TABTYPE CLUSTERID -----------------

2015-09-29 16:23:50 395

原创 spring声明式事务处理(hibernate)

spring声明式事务处理(使用hibernate操作数据库)在上一个博文我们讨论到了spring声明式事务处理与jdbc的整合。 思路: 1、无论是jdbc还是hibernate,都要使用到datasSource,所以首先要导入dataSource。 2、测试dataSource是否导入成功 3、bean的创建,以及映射文件,hibernate的配置文件, 4、建立dao,service层

2015-09-24 16:39:02 413

原创 spring声明式事务处理(使用jdbc操作数据库)

声明式:针对编程人员,声明spring容器遇到哪些目标方法时需要开启事务,哪些不用开启事务。 事务处理:把事务处理交给spring容器来完成。 spring声明式事务处理的目标: 让程序员从事务处理中脱离开来,交给spring完成,并声明哪些目标方法需要开启事务,哪些不需要。spring声明式事务处理的步骤:构建开发环境导入所需jar包把dataSource放到spring容器中,并

2015-09-23 17:10:10 1484

原创 spring与jdbc结合的方式

我们需要通过spring来操作jdbc的时候,由于jdbc框架属于模板编程:固定的写法,传入datasource,获取连接,得到statement,然后执行。但是它们所执行的sql语句是不一样的,对于这种情况,称之为模板编程。 我们先来看一下jdbcDaoSupport: 这里的方法只是这个类的一部分,首先我们可以看到,jdbcDaoSupport是一个抽象类,并且把jdbcTemplate

2015-09-22 16:54:29 398

原创 springAOP的注解

前面说到了使用注解的方式把目标类和切面放到spring容器中,那么我们现在使用注解的形式把aop配置到spring容器中。 为了突出区别,我们把前面“springAOP的入门例子“拿出来重构。关于具体的需求以及需求分析,可以查看前面的文章。

2015-09-22 10:08:54 517

原创 aop的概念总结

以后我们解释某一个概念的时候,我们应该通过它的应用例子来解释,而不是当别人问aop是什么?我们就直接说:“面向切面编程”。这样回答跟没有说一样。例子: 当我们通过网页输入数据来保存某一个注册者的信息的时候,页面里面有文件上传,表单验证,安全验证等操作。我们的目标类就单单用来保存用户,把文件上传,表单验证,安全验证等步骤放在切面中处理。这个就是aop的例子。可以让目标方法和切面通知松耦合。

2015-09-19 11:46:39 334

原创 aop的需求分析:错误异常分析

但是,我们学习过aop之后,我们知道了有异常通知这种方式。下面是代码的实现://dao层public interface personDAO { public void savePerson() throws Exception;}//dao层实现public class personDAOImpl implements personDAO { @Override pub

2015-09-19 11:24:30 451

原创 一个目标类对应多个切面的例子

在之前的cglib代理原理中(至于cglib和jdk代理的区别,看之前的博文),我们涉及到了多个切面,但是那时候说的切面,还不算真正意义上的切面(没有在spring配置文件中配置)。现在我修改一个那个例子.需求:我们仍然查询某一个人的薪水需求分析:我们直接通过目标类来查询某个人的薪水,但是在我们通过调用目标方法的时候,有各种通知在运作,就像拦截器一样,如果没有相应的权限的话,就不给查询。通知的分析:

2015-09-18 17:51:30 2714

原创 通知的种类

通知的种类:1、前置通知2、后置通知3、最终通知4、异常通知5、环绕通知在之前的例子中,我们使用到了before(前置通知)和after-returning(后置通知)。还有after最终通知(最终通知)和around(环绕通知)。前置通知和后置通知已经在前面的帖子涉及到,这里只做总结:前置通知:*在目标方法执行前执行*所以目标方法如果出现异常,这里还会执行后置通知:*在目标方法执行后

2015-09-18 15:00:19 769

空空如也

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

TA关注的人

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