- 博客(232)
- 资源 (1)
- 收藏
- 关注
原创 maven mirror
1、在mirrorOf与repositoryId相同的时候优先是使用mirror的地址2、mirrorOf等于*的时候覆盖所有repository配置3、存在多个mirror配置的时候mirrorOf等于*放到最后4、只配置mirrorOf为central的时候可以不用配置repository...
2020-02-26 09:35:52 352
原创 String和StringBuffer
多线程安全String和StringBuffer是多线程安全的,String的字符数组是final的,所以它不存在修改也就天然线程安全,而StringBuffer则是通过同步锁实现线程安全的,它的所有方法都是使用的synchronized修饰保证其线程安全性。而StringBuilder则是非线程安全的。乐观锁和悲观锁CAS是乐观锁,synchonize是悲观锁。...
2020-01-05 22:48:49 319
原创 JAVA NIO 零拷贝相关
一、Java NIO 零拷贝实现在 Java NIO 中的通道(Channel)就相当于操作系统的内核空间(kernel space)的缓冲区。而缓冲区(Buffer)对应的相当于操作系统的用户空间(user space)中的用户缓冲区(user buffer): 通道(Channel)是全双工的(双向传输),它既可能是读缓冲区(read buffer),也可能是网络缓冲区(socket...
2019-12-01 22:11:06 356
原创 nginx做udp负载均衡
要求:nginx实现UDP负载,upstream server能拿到client ip&port,并向client回包。背景:nginx server:10.1.1.200。upstream server:10.1.1.100。port:7400。1,安装nginxnginx默认不支持udp负载,安装编译时加上“--with-stream”2,nginx配置ngi...
2019-11-12 17:34:59 1168
原创 linux百万级长链接系统配置
以下在centos7上试验通过1. 前提1)关闭selinux修改/etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled2)关闭防火墙systemctl stop firewalld.servicesystemctl disable firewalld.service2. 修改/etc/security/lim...
2019-03-11 16:36:18 917
原创 java一些注解
一、@Component,@Service,@Controller,@Repository在Spring2.0之前的版本中,@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常。在Spring2.5版本中,引入了更多的Spring类注解:@Component,@Service,@Controller。@...
2019-02-26 16:41:58 263
原创 DateTimeFormat.ISO不安全兼容ISO 8601
spring中DateTimeFormat.ISO DATE_TIMEFormat yyyy-MM-dd'T'HH:mm:ss.SSSZ, e.g. "2000-10-31T01:30:00.000-05:00".js中toISOString()返回‘2017-02-21T03:20:59.540Z’,格式标准为ISO 8601。如果为UTC时间,可以直接在
2017-02-21 19:49:57 3357
原创 Collections的emptyList() emptyMap() emptySet()
Collections.emptySet() Collections.emptyList() Collections.emptyMap()三个为不可写入的主要用途:返回0长度的数组或者集合,而不是null
2017-01-24 19:50:55 890
原创 crontab格式问题
1,linux crontab格式 ┌───────────── minute (0 - 59) │ ┌───────────── hour (0 - 23) │ │ ┌───────────── day of month (1 - 31) │ │ │ ┌───────────── month (1 - 12) │ │ │ │ ┌───────────── day of week
2016-12-28 14:52:49 546
原创 cors的好文章
Access-Control-Allow-Origin与跨域http://www.tuicool.com/articles/7FVnMzUsing CORShttps://www.html5rocks.com/en/tutorials/cors/
2016-12-20 17:26:12 525
原创 bgp笔记
http://www.china-ccie.com/ccie/lilun/bgp/bgp.htmlhttp://wenku.baidu.com/link?url=Wh71NC7uYqN5x3xjqtQEGz1hyHHDjGkawr3bnJmV4LEOcEOjCOHx1raCz6P5tD0ex7APdOLJRKnxaGq7XysdRxkjjbRrimpv-g1QWJXSObm1、内部
2016-06-02 20:06:49 878
原创 rpm spec文章
http://fedoraproject.org/wiki/How_to_create_an_RPM_package/zh-cn
2015-09-17 11:24:01 508
原创 RPM -U 升级机制探索
RPM基本的升级策略:1. 基本策略: a. 安装高version的rpm包 b. 删除所有旧version包的内容2. 针对文件的upgradeRPM 对旧版本的rpm包所属文件在升级的过程中采用策略基本原理是: 计算文件的MD5值,比对MD5然后采取不同的策略。首先定义几个术语: 原有文件(original file): 指的是旧版本安装时的某文件
2015-09-14 23:34:18 960
原创 大端小端
Big Endian 低地址 高地址 -----------------------------------------> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 12 | 34 | 56
2015-09-01 14:37:00 615
原创 gradle好文章
构建神器Gradlehttp://jiajixin.cn/2015/08/07/gradle-android/http://www.csdn.net/article/2015-08-10/2825420/1加速Android Studio/Gradle构建http://blog.isming.me/2015/03/18/android-build-speed
2015-08-26 19:10:54 462
原创 ubuntu wine gnome-keyring-pkcs11.so问题
p11-kit: couldn't load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: 无法打开共享对象文件: 没有那个文件或目录解决办法:sudo apt-get install li
2015-08-25 16:23:02 1841
原创 gcc 去除符号表
读取符号表readelf -p .dynstr mylib.so通过gcc控制可见性__attribute__((visibility("hidden"))) int foo(int a, int b);__attribute__((visibility("default"))) int foo(int a, int b);ndk中控制NDK_ROOT/
2015-07-03 17:41:02 12571
原创 ndk交叉编译两种方式
方式一,导出standalonecd ./build/tools/make-standalone-toolchain.sh --platform=android-8 --install-dir=/android-8 --arch=arm --toolchain=arm-linux-androideabi-4.8 --system=linux-x86_64export PATH=/and
2015-06-17 18:15:11 3082
原创 startActivityForResult用户及与onResume顺序问题
基本用法MainActivity@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnOpen=(
2015-04-16 12:16:02 838
原创 android api对应版本
Platform VersionAPI LevelVERSION_CODENotesAndroid 5.122LOLLIPOP_MR1Platform HighlightsAndroid 5.021LOLLIPOPAndroid 4.4W20KITKAT_WATCH
2015-04-01 10:35:59 984
原创 android 开发工具及资源
Android SDK 在线更新镜像服务器资源大连东软信息学院镜像服务器地址:http://mirrors.neusoft.edu.cn 端口:80北京化工大学镜像服务器地址:IPv4: http://ubuntu.buct.edu.cn/ 端口:80IPv4: http://ubuntu.buct.cn/ 端口:80IPv6: http://ubuntu.buct6.
2015-03-27 16:50:13 533
原创 移动设备分辨率
1,手机分辨率其实手机屏幕是以手机的对角线长度来计算的,如4.3英寸的手机屏幕,实际上指的是手机对角线的长度是4.3英寸,1英寸等于2.54厘米,大家自己算算就知道手机屏幕有多大了。2, px和ptPx ,是英文单词pixel的缩写,意为像素。在设计领域中,像素是用来计算数码影像的一种单位。计算机中显示的图像并非连续的线条组成,而是由许多肉眼看不见的小点组成。如果把把影像放大数倍,会发
2015-03-25 16:15:58 1276
转载 分辨率PPI与DPI
分辨率PPI与DPI,关于这个问题,现在很多人容易混淆,现摘录几份资料,以后再整理吧。 图像分辨率所使用的单位是PPI(Pixel Per Inch),意思是:在图像中每英寸所表达的像素数目。从输出设备(如打印机)的角度来说,图像的分辨率越高,所打印出来的图像也就越细致与精密。打印分 辨率使用的单位是DPI(Dot Per Inch),意思是:每英寸所表达的打印点数。PPI与DPI的度
2015-03-25 14:58:01 1633
原创 WeakReference与SoftReference
WeakReference与SoftReference都可以用来保存对象的实例引用,这两个类与垃圾回收有关。WeakReference是弱引用,其中保存的对象实例可以被GC回收掉。这个类通常用于在某处保存对象引用,而又不干扰该对象被GC回收,通常用于Debug、内存监视工具等程序中。因为这类程序一般要求即要观察到对象,又不能影响该对象正常的GC过程。SoftReference是强引用,
2015-03-22 14:38:06 478
原创 线程与内存
在多个线程之间共享了Count类的一个对象,这个对象是被创建在主内存(堆内存)中,每个线程都有自己的工作内存(线程栈),工作内存存储了主内存Count对象的一个副本,当线程操作Count对象时,首先从主内存复制Count对象到工作内存中,然后执行代码count.count(),改变了num值,最后用工作内存Count刷新主内存Count。当一个对象在多个内存中都存在副本时,如果一个内存修改了共享变
2015-03-19 20:12:38 3996
转载 15个顶级Java多线程面试题及回答
原文:http://ifeve.com/15-java-faq/ Java 线程面试问题 在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题。在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的。他们会问面试者很多令人混淆的Java线程问题。面试官只是想确信面试
2015-03-19 18:29:09 528
原创 eclipse使用手记
安装svn,支持1.7svnkit地址:http://svnkit.com/download.phpeclipse 1.8插件地址:http://eclipse.svnkit.com/1.8.x
2015-03-19 15:40:10 593
原创 ThreadLocal
当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表达的意思。接口方法ThreadLocal类接口很简单,只有4个方法,我们先来了解一下:void set(Object v
2015-03-19 13:43:48 457
原创 static class
java允许我们在一个类里面定义静态类。比如内部类(nested class)。把nested class封闭起来的类叫外部类。在java中,我们不能用static修饰顶级类(top level class)。只有内部类可以为static。静态内部类和非静态内部类之间到底有什么不同呢?下面是两者间主要的不同。 (1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部
2015-03-19 10:59:37 584
原创 Java 条件变量
条件变量都实现了java.util.concurrent.locks.Condition接口,条件变量的实例化是通过一个Lock对象上调用newCondition()方法来获取的,这样,条件就和一个锁对象绑定起来了。因此,Java中的条件变量只能和锁配合使用,来控制并发程序访问竞争资源的安全。条件变量的出现是为了更精细控制线程等待与唤醒,在Java5之前,线程的等待与唤醒依靠的是Object对
2015-03-16 20:32:57 819
原创 一个简单的死锁
class DeadLock implements Runnable { public int flag = 1; static Object o1 = new Object(), o2 = new Object(); public void run() { System.out.println("flag=" + flag); if (flag == 1) { synchr
2015-03-16 19:37:24 534
原创 线程和synchronized
对每一个class只有一个thread可以执行synchronized static method。每个class的instance只有一个thread可以执行synchronized method。任意数目的thread可以执行非synchronized method——不管是否是static。一个线程在访问一个对象的同步方法时,另一个线程可以同时访问这个对象的非同步方法一个线程在访
2015-03-12 19:40:39 523
原创 Spring注解注入
Autowired和Resource1.1. 使用注解以前我们是怎样注入属性的源码:public class UserManagerImpl implements UserManager { private UserDao userDao; public void setUserDao(UserDao userDao) {
2015-03-11 11:13:12 712
原创 spring中classpath用法
classpath就是代表 /WEB-INF /classes/ 这个路径(所有src目录下面的java、xml、properties等文件编译后都会在此)常用的场景:在SSH架构中,配置Spring的上下文环境: contextConfigLocation classpath:applicationContext
2015-03-10 10:29:48 2605
原创 Android Fragment
Fragment的生命周期因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销
2015-03-05 19:19:57 579
原创 java base学习笔记
容器容器只保存Object的引用。意味着: 1,所以容器什么对象都能放(基本类型除外) 2,存入容器的对象会丢失具体的类型信息 3,从容器取出对象需要类型转换
2015-03-02 08:07:14 497
原创 Intent传数据汇总
1.无参数Activity跳转Intent it = new Intent(Activity.Main.this, Activity2.class);startActivity(it); 2.向下一个Activity传递数据(使用Bundle和Intent.putExtras)Intent it = new Intent(Activity.Main.this, Activi
2015-02-11 10:56:09 629
原创 IntentService
介绍Service不是一个单独的进程 ,它和应用程序在同一个进程中。Service不是一个线程,所以应避免在Service里面进行耗时的操作。IntentService为Service的子类,不同的是,它使用Handle、Thread使用独立的线程异步处理消息,不影响主线程。流程如下:使用例子Service: package com.zhf.service
2015-01-30 11:45:15 560
原创 invalidate()和postinvalidate()区别
一个Android 程序默认情况下也只有一个进程,但一个进程下却可以有许多个线程。在这么多线程当中,把主要是负责控制UI界面的显示、更新和控件交互的线程称为UI线程,由于onCreate()方法是由UI线程执行的,所以也可以把UI线程理解为主线程。其余的线程可以理解为工作者线程。invalidate()是用来刷新View的,必须是在UI线程中进行工作。比如在修改某个view的显示时,调用inv
2015-01-29 12:39:32 589
原创 android handle笔记
Handle的特点当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发。如果此时需要一个耗时的操作,例如:联网读取数据,或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象,如果5秒钟还没有完成的话,会收到Android系统的一个错误提示"强制关闭". 这个时候我们需
2015-01-29 12:02:21 670
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人