- 浏览: 30998 次
- 性别:
- 来自: 杭州
最新评论
文章列表
一个指针在64位的计算机上,占8个字节;一个指针在32位的计算机上,占4个字节。
原因如下:
我们都知道cpu是无法直接在硬盘上读取数据的,而是通过内存读取。cpu通过地址总线、数据总线、控制总线三条线对内存中的数据进行传输和操作。
具体流程:
1、cpu通过地址总线,找到该条数据;
2、通过控制总线得知该操作是读操作还是写操作;
3、通过数据总线将该数据读取到cpu或者从cpu写到内存中。
所以,
地址总线的宽度决定了CPU的寻址能力;
sourcetree免注册
- 博客分类:
- 转载
打开sourcetree
关闭sourcetree
命令终端输入defaults write com.torusknot.SourceTreeNotMAS completedWelcomeWizardVersion 3
打开sourcetree即可跳过登录
java泛型的几点总结
- 博客分类:
- java基础
1 父类是个泛型类,子类继承父类,如果不指定父类的泛型类型或者没有重新声明一个泛型,那么子类讲不是一个泛型类
public class Parent<T> {
}
public class Son extends Parent {
}
下面这样写是会报错的
Son<Integer> song = new Son<Integer>();
2 类型通配符
2.1 <? extends xx>
Number obj = new Integer(123);
List<Integer> integerLis ...
dubbo接口超时时间的优先级
- 博客分类:
- dubbo源码分析
dubbo在服务端和消费端都可以设置接口的超时时间,如果同一个接口,两端都进行了设置,消费端的优先级要高于消费端。
之前一直有这样一个理解:对应TCP的连接,发起请求后,服务端也可以设置超时时间,当超过超时时间,服务端可以中断和客户端的连接。其实这样理解是错误的,服务端是没有超时时间的,所谓的超时其实都是在客户端进行设置,到超过超时时间没有响应,客户端就会处理超时。
dubbo中的超时时间也是在调用端进行设置,当配置中心把某个接口的服务端列表推送给dubbo后,dubbo就会生成相应的调用代理,这是超时时间也会设置进来,但是这时,会用客户端去覆盖服务端的设置。具体代码如下:
其实不止超 ...
dubbo中自己实现了一套SPI,解决了dubbo的可扩展性问题,方便了框架的各层可以在多个不同的实现之间进行来回切换。
SPI的实现主要在类ExtensionLoader中,这个类的构造函数接收一个Class类型的参数,并且这个class必须是接口,必 ...
加锁、解锁的整体流程图。实际上要比这复杂,上面的流程图只做理解用。
具有以下继承关系的三个类
Manager继承自Person,CTO继承自Manager
private void doSome1(){
Box<CTO> ctoBox = new Box<CTO>();
Box<? extends Person> personBox = ctoBox;
//通过personBox引用对象,不能改变对象本身,因为你不知道泛型的具体类型
//比如本例,真实类型是CTO,但是如果你改变成了Person,其它引用这个对象的地方(ctoBo ...
docker学习记录
- 博客分类:
- docker
启动容器
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
-i:表示以“交互模式”运行容器-t:表示容器启动后会进入其命令行-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
删除所有正在运行的容器
sudo docker rm $(docker ps -a -q)
进入容器
docker exec -it test01 bash # 进入容器也可以用exec命令
curl -fsSLO https ...
当我们使用sudo命令切换用户的时候可能会遇到提示以下错误:xxx is not in the sudoers file. This incident will be reported,xxx是你当前的用户名,究其原因是用户没有加入到sudo的配置文件里
1、切换到root用户,运行visudo命令
2、在打开的配置文件中,找到root ALL=(ALL) ALL,在下面添加一行
xxx ALL=(ALL) ALL 其中xxx是你要加入的用户名称
linux中查找jdk的安装路径
- 博客分类:
- linux
首先要申明一下which java是定位不到安装路径的。which java定位到的是java程序的执行路径。网上的资料都是人云亦云,完全不去思考。那么怎么定位到java的安装路径呢?下面我们来看看例子吧,如下所示:
[root@localhost ~]# java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (rhel-2.5.1.2.el6_5-x86_64 u65-b17)
OpenJDK 64-Bit Server VM (build 24.65-b04, mix ...
在windows中安装hadoop,JAVA_HOME中如果有空格,就会报下面的错误
hadoop Error: JAVA_HOME is incorrectly set.
解决方案,设置软连接,重新配置JAVA_HOME
使用 cmd 创建软连接 :
mklink /J D:\tools\java "D:\Program Files\Java\jdk1.7.0_67"
然后重新配置JAVA_HOME
sjdbc有读写分离的功能,要使用这个功能,在创建数据源对象是要使用类:MasterSlaveDataSource,并且设置主备数据源和数据库名称
这个对象有下面的属性:
name:数据库的名称
masterDataSource:主数据源对象
slaveDataSources:备库数据源类别
slaveLoadBalanceStrategy:选从算法
/**
* 获取主或从节点的数据源名称.
*
* @param sqlStatementType SQL类型
* @return 主或从节点的数据源
*/
...
分片配置的目的显而易见:就是将数据库分片规则和策略告诉sharding-jdbc
sharding-jdbc需要知道如下信息:
(1)哪些表需要分片
(2)需要分成哪些库?哪些表?名字分别是什么
(3)通过哪个字段(或哪些字段)进行分库分表
(4)具体的分库或分表算法什么怎样的
(5)分片规则和策略相关的一组表怎么处理
刚开始看官方的小例子,分片配置的代码有些懵逼,梳理了一下,需要如下类进行实现
DataSourceRule
TableRule
BindingTableRule
ShardingRule
这些对象的创建次序轴是这样的:
...
3.1之后 spring自动注入 RequestMappingHandlerMapping RequestMappingHandlerAdapter
3.1之前 注入AnnotationMethodHandlerAdapte AnnotationMethodHandlerMapping
没加 采用默认的配置
org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\
org.springframework.we ...
<context:annotation-config/>
他的作用是式地向 Spring 容器注册AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、
PersistenceAnnotationBeanPostProcessor 以及 RequiredAnnotationBeanPostProcessor 这 4 个BeanPostProcessor。
注册这4个 BeanPostProcessor的作用,就是为了你的系统能够识别相应的注解。
例如:
如果你想使用@Autowire ...