杂 项

>判断邮箱规则的正则表达式:

var patt = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;

patt.test("The best things in life are free!")

>如果桌面的编程环境比较多,用ubuntu

>如果网络编程很多,对网络要求比较高,scientific linux(redhat )

>如果喜欢自己折腾,对速度要求比较bt,使用gentoo,arch

>如果对响应速度和资源占用要求更高,freebsd

>如果能忍受速度慢,又喜欢牌子,用solaris

>如果喜欢折腾自己,用lfs,或者嵌入式环境

Linux程序员有两个发展方向:一是软件层面,网络层面;二是硬件层面,嵌入式系统。网络方面应该要学会PHP,python之类的语言,要会建站,LAMP,维护。嵌入式则要精通C语言,精通Linux系统结构,懂得硬件知识

Stack Overflow因使用Windows系统而著称,现在他们使用越来越多的Linux服务器,比如HAProxy(负载均衡), Redis(NoSQL数据库), Bacula(数据备份系统), Nagios(远程监控软件), 日志, 路由器都运行于Linux系统,几乎所有需要并行处理的功能都是由Linux处理

Hadoop

https://pan.baidu.com/s/1bSCj3S

t9hn

Thread

>synchronized(this)以及非static的synchronized方法,只能防止多个线程同时执行同一个对象的同步代码段

>static synchronized方法,static方法可以直接类名加方法名调用,方法中无法使用this,所以它锁的不是this,而是类的Class对象,所以,static synchronized方法也相当于全局锁,相当于锁住了代码段

>synchronized(className.class)实现了全局锁的效果

synchronized同步锁原理:

>对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁。但是,在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度,从而在CPU上执行;而没有获取到同步锁的线程,必须进行等待,直到获取到同步锁之后才能继续运行。这就是,多线程通过同步锁进行同步的原理

ThreadLocal

>最常见的ThreadLocal使用场景为 用来解决 数据库连接、Session管理

yield只能让是同级,或者高级其他线程优先执行

sleep可以让低级,同级其他线程都可以有优先执行机会

Interrupt:

Interrupt方法设置线程的中断标记,当对处于阻塞状态的线程调用interrupt方法时(处于阻塞状态的线程是调用sleep,wait,join的线程),会抛出InterruptException异常,而这个异常会清除中断标记。

wait

>只能在synchronized方法或者synchronized块中使用

>获取锁方法

#nodify()方法

#wait(longtimeout):longtimeout时间到了以后,不会立即醒来,而是要看那个正在使用这把锁的线程是否结束

>释放线程锁

join:可实现同步顺序执行线程作用

>t.join//使调用线程t在此之前执行完毕

>t.join(1000)//等待t线程,等待时间1000毫秒,时间结束后线程竞争

>t.join方法紧跟t.start方法之后

值传递与引用传递

>值传递的时候,将实参的值,copy一份给形参

>引用传递的时候,将实参的地址值,copy一份给形参

也就是说,不管是值传递还是引用传递,形参拿到的仅仅是实参的副本,而不是实参本身

String:

>>只要是用new()来新建对象的(形如:new String("abc")),都会在堆中创建,而且字符串是单独存值得,即使与栈中的数据相同,也不会与栈中数据共享。

>>直接赋值来新建对象的,会在栈中查找是否存在该字符串,存在则指向对应的内存地址至变量;不存在则开辟新的地址,并将内存地址指向变量名。

==和equals

>>当比较包装类里面的数值是否相等时,用equals

>>当比较两个包装类的引用是否指向同一个对象时,用==

VBA获取字符串长度

Function xLenB(strInput As String)

Dim arr() As Byte

arr = StrConv(strInput, vbFromUnicode)

xLenB = UBound(arr) + 1

End Function

//JS:输出字符串长度

var str = "啊a吧b查c";

var twoLen = str.match(/[^\x00-\xff]/ig);//输出:啊,吧,查

var totalLen = str.length + (twoLen==null?0:twoLen.length);//输出:总长度

//#CSV START

//记录CSV中双引号个数,规避CRLF换行情况

public static int cntChar(String str, char c, int fromIndex){

int idx = str.indexOf(c, fromIndex);

return idx == -1 ? 0 : cntChar(str, c, idx + 1) + 1;

}

//当双引号为奇数时循环读取

String strLine = "";

while (cntChar(strLine, '"', 0) % 2 == 1) strLine = strLine + bfReader.readLine();

//#CSV END

--大型网站系统架构演化

https://www.cnblogs.com/leefreeman/p/3993449.html

//listagg超出4000长度替换方法

select xmlagg(xmlparse(content rt.extracted_person_ids||','wellformed) orderby rt.extracted_person_ids).getclobval() from abc;
 

idea plugin:

a>Rainbow Brackets:彩虹颜色的括号,看着很舒服,敲代码效率变高

b>Nyan progress bar:将所有的进度条都变成萌新动画的小插件

c>activate-power-mode:这是一款让你在编码的时候,整个屏幕都为之颤抖的插件。

d>Background image Plus:这是一款可以设置idea背景图片的插件,不但可以设置固体的图片,还可以设置一段时间后随机变化背景图片,以及设置图片的透明度等等。

相关推荐