自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 >>>、>>、<<运算(原码、补码、反码)

java中:>>>和>>区别s-_-s 2018-09-28 17:11:16 26574 收藏 22版权>>>表示不带符号向右移动二进制数,移动后前面统统补0;两个箭头表示带符号移动,没有<<<这种运算符,因为左移都是补零,没有正负数的区别。如 -12 的二进制为:11111111111111111111111111110100;-12 >> 3 即带符号右移3位,结果是:11...

2021-03-15 20:41:19 1977

原创 JAVA运算符 与(&)、非(~)、或(|)、异或(^)

JAVA运算符 与(&)、非(~)、或(|)、异或(^)最近看HashMap源码,遇到了这样一段代码:1 static final int hash(Object key) {2 int h;3 return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);4 }于是我整理学习了以下知识:1.十进制转二进制原理:给定的数循环除以2,直到商为0或.

2021-03-15 20:16:01 179

原创 LockSupport的park和unpark的原理

我们知道各种并发框架如CountDownLatch、CyclicBarrier和Semaphore是基于AQS (AbstractQueuedSynchronizer)框架实现的,AQS框架借助于两个类:Unsafe(提供CAS操作) //JDK9以后引入了VarHandle变量句柄,代替了Unsafe LockSupport(提供park/unpark操作)而LockSupport的park和unpark的实现是依赖于Unsafe类的prak和unpark的。重载方法中可以传入一个blocker对

2021-03-15 18:28:53 2212

原创 AQS(AbstractQueuedSynchronizer)中为什么需要一个虚拟 head 节点

为什么在在使用lock方法时候,要创建一个虚拟节点呢?事情要从 Node 类的 waitStatus 变量说起,简称 ws。每个节点都有一个 ws 变量,用于这个节点状态的一些标志。初始状态是 0。如果被取消了,节点就是 1,那么他就会被 AQS 清理。还有一个重要的状态:SIGNAL —— -1,表示:当当前节点释放锁的时候,需要唤醒下一个节点。所有,每个节点在休眠前,都需要将前置节点的 ws 设置成 SIGNAL。否则自己永远无法被唤醒。而为什么需要这么一个 ws 呢?—— 防止重.

2021-03-14 12:42:11 3083 8

原创 UNSAFE和Java 内存布局(深入理解:锁/反射/线程挂起/内存回收等)

最近在翻ReentrantLock源码的时候,看到AQS(AbstractQueuedSynchronizer.java)里面有一段代码 protected final boolean compareAndSetState(int expect, int update) { // See below for intrinsics setup to support this return unsafe.compareAndSwapInt(this, stateOff

2021-03-14 11:11:21 221

转载 Java中的变量和常量

常量和变量的概念描述程序中定义的用来传递数据的介质(上面介绍的量),可以是变化的,也可以是固定不变的。固定不变的量称为常量,随程序运行过程可以发生改变的量称为变量。常量和变量的声明与定义常量和变量在声明的时候,都需要指定具体的数据类型,关于Java数据类型,可以参看我的另一篇博客(点此跳转)。变量的声明[修饰符]变量类型变量名;修饰符是可选的,但不是随意的。修饰...

2020-03-03 23:30:39 112

转载 springmvc实现对cookie操作

1. [代码]基于springMVC框架下写的[html] view plain copy /**           * 读取所有cookie           * 注意二、从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只

2017-04-20 15:39:20 6789

原创 jQuery.ajax异步创建的html元素的绑定事件

jQuery事件问题 对jQuery.ajax异步创建的html元素的绑定事件 必须在success里重新绑定 否则无效//项目成员var paremStr = 'pn=f';function projUserListByAjax(){var jsonurl="spring.url relativeUrl="/project/projUsersByIdA

2017-04-20 13:17:15 1570

转载 tomcat结合nginx的使用

相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:Html代码  反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服

2017-03-06 10:58:31 525

原创 通过阿里云发布一个Tomcat,并通过域名访问

以下只是我个人的经历: 1.阿里云购买域名www.qianxueya.com 2.购买阿里云的云服务器 ECS(附带弹性公网IP服务,大概5毛钱一天),我用的是Windows Server2012 3.远程桌面连接到Windows Server2012,安装QQ,方便传输自己开发好的网站和文件,有些人喜欢折腾,弄各种工具,打开黑漆漆的命令行工具各种敲,我懒得和你折腾,原谅我就是这么简单

2017-02-28 09:55:36 8605 1

原创 在VMWare中建立Hadoop虚拟集群的详细步骤(使用CentOS)

最近在学习Hadoop,于是想使用VMWare建立一个虚拟的集群环境。网上有很多参考资料,但参照其步骤进行设置时却还是遇到了不少问题,所以在这里详细写一下我的配置过程,以及其中遇到的问题及相应的解决方法。一来做个记录,二来也希望能帮到大家。目标我们要建立一个具有如下配置的集群:  host name  ip address  os

2017-02-13 15:30:21 758

原创 linux中make的快速安装

输入:yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++

2017-02-11 11:37:28 1198

原创 SecureCRT连接本地虚拟机当中的Linux系统

最近在学习Linux,看了网上很多SecureCRT连接本地虚拟机当中的Linux系统,很多都是需要设置Linux的配置文件,有点繁琐,所以自己就摸索了一下,把相关操作贴出来分享一下。  SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。这样操作的时候不必进入到linux桌面,可以更方便的在命令行下进

2017-02-09 08:50:37 8882 1

原创 Mysql 5.6主从同步配置与解决方案

Mysql 5.6主从同步配置与解决方案主库IP:192.168.1.10从库IP:192.168.1.111、主库配置编辑my.cnf:# 启用二进制日志log_bin = mysql-binserver-id = 111log-bin-index=mysql-bin.indexsync_binlog=1binlog_format=m

2017-01-12 19:42:29 463

原创 SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次,先说说三大框架整合过程。个人认

2016-11-01 20:23:33 253

原创 html中offsetTop、clientTop、scrollTop、offsetTop各属性的解释

TML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度。 scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 scrollWidth:获取对象的滚动宽度 offse

2016-10-27 10:15:11 5909

原创 overflow的解释

overflow版本:CSS2  兼容性:IE4+ NS6+ 继承性:无语法:overflow :visible | auto |hidden | scroll 取值:visible : 默认值。不剪切内容也不添加滚动条。假如显式声明此默认值,对象将以包含对象的 window 或 frame 的尺寸裁切。并且 clip 属性设置将失效au

2016-10-26 18:32:27 1280

原创 JavaScript中getElementById()为空或不是对象

defer="defer"> 加上defer这个属性,这个表示document加载完后,才开始加载script标签的内容。就是加载顺序问题。浏览器加载到这行语句doc2.getElementById("XXXX")的时候这个XXX对象浏览器还没有加载。所示会报这种错误。 0 加上defer这个属性,这个表示document加载完后,才开始加载

2016-10-26 17:50:38 464

原创 死锁产生的原因及四个必要条件

一. 什么是死锁?     如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程二. 死锁产生的原因?1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以满足全部进程的需要时,就会引起对诸资源的竞争而发生死锁现象(1)可剥夺资源和不可剥夺资

2016-10-19 09:43:39 28073

原创 i+=i-=i*=1运算符的优先

Java中Int i=12; System.out.print(i+=i-=i*=1);输出结果是多少?怎么运算的?System.out.print(i+=i-=i*=i);最后一个是i,不是1你大爷勒00 | 浏览 73 次  2016-06-22 18:342016-06-22 18:39最佳答案i+=i-=i*=1;这种是复合赋

2016-10-19 08:45:16 2378

原创 String使用equals方法和==分别比较的区别

equals方法和==的区别  首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用。这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = "Hello",它的使用方法如同基本类型int一样,比如int i = 1;,而作为一个对象来使用,则是指通过new关键字来创建一个新对象,比如String s = new String("Hello"

2016-10-19 08:28:17 1079

原创 面向对象开发的几个核心的思想和概念

1、问题领域、对象、属性、状态、行为、方法、实现问题领域:指软件系统所模拟的真实世界中的系统,在现实生活中,比较常见的比如,税收、社保、银行、商场等等,都可以使用软件来进行模拟,这些就是软件所针对的问题领域。对象:对象是对问题领域中的事物的一种抽象。1)所有的东西都是对象,万物皆对象,问题领域中的实体和概念都可以抽象为对象。2)世界上没有完全相同的两片叶子,

2016-10-15 10:03:54 1570

原创 深入理解Java的接口和抽象类

深入理解Java的接口和抽象类  对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:  一.抽象类  二.接口  三.抽象类和接口

2016-10-10 21:18:43 176

原创 八大排序算法

概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。        当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。   快速排序:是目前基于比较的内部排序中被认为是最好的方法,

2016-10-10 21:03:00 269

原创 JDBC操作数据库

package cn.com.JDBC;    import java.sql.Connection;  import java.sql.ResultSet;  import java.sql.SQLException;  import java.sql.Statement;    public class CRUD {        public static

2016-10-10 18:58:35 285

原创 同步线程和异步线程的区别

1:同步可以看做是一个单线程操作,只要客户端请求了,在服务器没有反馈信息之前是一个线程阻塞状态(就是假死状态,不能操作其他方法)。2:异步肯定是个多线程。在客户端请求时,可以执行其他线程,并且在把这个线程存放在他的队列里面,有序的执行。(可以设置线程的数量,当超过最大时会显示等待状态)。线程同步与异步区别线程同步是多个线程同时访问同一资源,等待资源访

2016-10-10 13:29:33 33346 6

原创 TCP协议与UDP协议的区别

首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,传输层,网络层,网络访问层。其中应用

2016-10-10 13:12:03 283

转载 java中Map,List与Set的区别

Set,List,Map的区别java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存

2016-10-10 13:08:32 345

原创 重写和重载区别

重写方法的规则如下:1. 参数列表:必须与被重写方法的参数列表完全匹配。 2. 返回类型:必须与超类中被重写的方法中声明的返回类型或子类型完全相同 3. 访问级别:一定不能比被重写方法强,可以比被重写方法的弱。 4. 非检查异常:重写方法可以抛出任何非检查的异常,无论被重写方法是否声明了该异常。 5. 检查异常:重写方法一定不能抛出新的检查异常,或比被重写方法声明的检查

2016-10-10 13:00:59 542

原创 sql——查询大于、小于某个日期的写法

2016-10-09 23:15:23 178204 7

原创 SQL——link操作

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。LIKE 操作符LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。SQL LIKE 操作符语法SELECT column_name(s)FROM table_nameWHERE column_name LIKE pattern原始的表 (用在例子中的):Person

2016-10-08 19:48:21 2806

SM2&SM3&SM3.rar

基于Java的(SM2_SM3_SM4)国密算法, 加密解密工具类及测试demo

2021-06-11

空空如也

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

TA关注的人

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