Programming Language
一只程序dog
人多的地方不要去,尊重常识。
展开
-
通过在总线加LOCK#锁的方式有什么缺陷?如何解决?
缺陷某一个cpu访问内存时,内存被锁定,其他cpu无法访问内存,使得效率地下。解决利用缓存一致性协议。所以,什么是缓存一致性协议?原创 2017-01-18 17:22:18 · 2788 阅读 · 1 评论 -
处理器(比如Intel)如何实现原子操作?
1. 总线锁2.缓存一致性协议原创 2017-01-20 22:57:32 · 517 阅读 · 0 评论 -
js为什么需要Function()构造函数?
答案有了Function()我们就可以动态建立和编译一个函数了。缺点每次调用Function()构造函数有性能损耗。原创 2017-02-01 22:38:16 · 1901 阅读 · 0 评论 -
java并发每日一练
问题1.现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?答案直接上代码。 总结考点:join()的使用。package java并发学习.三个线程;/** * Created by h on 17-2-2. */public class Main { public static void main(String[] args) {原创 2017-02-02 16:30:06 · 602 阅读 · 0 评论 -
java并发每日一练
问题使用 wait notify 实现一个队列,队列有2个方法,add 和 get 。add方法往队列中添加元素,get方法往队列中获得元素。队列必须是线程安全的。如果get执行时,队列为空,线程必须阻塞等待,直到有队列有数据。如果add时,队列已经满,则add线程要等待,直到队列有空闲空间。答案//这是一段错误的实现代码package java并发学习.自己实现线程安全的队列;import ja原创 2017-02-02 18:09:25 · 1030 阅读 · 0 评论 -
java并发每日一练
问题写一个程序,证明在32位hotspot上,long不是原子操作,给出程序,以及运行的截图。解答直接上代码这里写代码片原创 2017-02-02 18:40:32 · 865 阅读 · 1 评论 -
彻底理解双重检验锁
理解原创 2017-02-02 21:35:24 · 1351 阅读 · 1 评论 -
java每日一坑(1)
一个构造函数的坑class A{ A(int a){ }}class B extends A{ B(){ }}上述一段代码报编译错误,原因是A中没有默认的构造函数。原创 2017-02-03 22:40:11 · 893 阅读 · 0 评论 -
java大坑(2)
java的初始化顺序1.类中的 static{…} 执行 2.实例初始化{…} 3.构造函数初始化A(){…} 那么为什么是这个顺序呢?如何记忆初始化顺序呢?是这样的,static{…}是在第一次使用类时需要执行,所以它的初始化肯定在类的对象创建之前。其次,构造函数初始化的值是“当前”我们需要的值,所以肯定是先于默认的实例初始化之前的,从设计的角度来讲,也是没有问题的,并且这个顺序是唯一,不然原创 2017-02-03 22:48:15 · 503 阅读 · 0 评论 -
DFA(判断是否是数字)
这段代码真是太精密了。public boolean isNumber(String s) { s = s.trim(); boolean pointSeen = false; boolean eSeen = false; boolean numberSeen = false; boolean numberAfterE = true; for(int i=原创 2017-03-23 14:45:02 · 859 阅读 · 0 评论 -
hihocoder1066-并查集
package com.snnu;import java.util.HashMap;import java.util.Scanner;public class union_find { static int maxn = 100000; static int[] disjointSet = new int[maxn]; static int len; static原创 2017-08-02 16:40:04 · 273 阅读 · 0 评论 -
缓存不一致问题
学习一个:非常著名的缓存不一致问题。原创 2017-01-06 20:48:53 · 642 阅读 · 0 评论 -
计算机体系结构——为什么需要高速缓存?
答案是这样的,考虑一个程序执行的过程。cpu从内存中读取数据,执行数据,如此不断重复。由于每次读取数据的速度比较慢,但是执行的速度比较快,所以造成了cpu的浪费,那么如何解决这个问题呢?答案就是设立高速缓存(可以看做一块比较小的内存)。想想为什么cpu直接从高速缓存读取数据要比从内存读取速度更快?原创 2017-01-18 17:02:29 · 824 阅读 · 0 评论 -
如何恰到好处地使用String?
从性能的角度考虑!而不是从编译器如何优化的角度考虑!原创 2017-02-06 12:19:37 · 530 阅读 · 0 评论 -
CurrentHashMap vs HashMap
问题为什么HashMap在多线程下会造成死循环?造成了怎样的循环?回答要回答这个问题,首先参考这个链接 然后我花了一点时间看懂了他的这篇博客,写写自己的总结吧: 1. 什么时候可能产生这个循环链表? 答:在rehash的时候。 2. 举个例子来说明? 参考上面链接。原创 2016-12-22 13:15:09 · 469 阅读 · 0 评论 -
谈谈Vector的线程安全
vector是线程安全的吗?我们知道vector和ArrayList的区别就是Vector的方法是线程安全的,所以我们可以高枕无忧地使用Vector了吗?参考原创 2016-12-24 11:04:55 · 799 阅读 · 0 评论 -
HashTable vs Map
散列表原创 2016-12-18 21:25:41 · 142 阅读 · 0 评论 -
ArrayList的排序
Collections.sort(tmp, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2 - o1;//表示降序,反之升序,傻傻分不清原创 2016-12-19 13:07:37 · 308 阅读 · 0 评论 -
synchronized
利用monitor实现synchronized。原创 2017-01-07 18:05:18 · 349 阅读 · 0 评论 -
java中的多态
多态java中的多态分为两种 1.所谓的静态多态,就是函数的参数列表不同,代码完成之后,在编译期间就确定了调用那个函数。 2.所谓的动态多态,一种实现方式是父类引用指向子类对象,还有另一种是利用接口实现多态,调用子类里的方法还是父类里的方法在运行时才能决定。程序员看多态其实有时候我觉得我们看待多态的方式没必要非为静态和动态的形式,因为从程序员的角度来看,不管是静态多态还是动态多态,你根本看不出来原创 2016-12-30 20:38:33 · 266 阅读 · 0 评论 -
java自动装箱和拆箱
注意事项Java使用自动装箱和拆箱机制,节省了常用数值的内存开销和创建对象的开销,提高了效率。结论如下: (1)Integer和 int之间可以进行各种比较;Integer对象将自动拆箱后与int值比较 (2)两个Integer对象之间也可以用>、<等符号比较大小;两个Integer对象都拆箱后,再比较大小 (3) 两个Integer对象最好不要用==比较。原创 2016-12-30 20:47:13 · 273 阅读 · 0 评论 -
java String学习
jkd1.8 String的学习传送个链接地址,有人已经讲的很好了。 String = “hello”创建了几个对象原创 2016-12-30 21:23:01 · 313 阅读 · 0 评论 -
我所理解的volatile
1.可见性 2.原子性(这里指的是对任意单个volatile变量的读/写有原子性)原创 2017-02-04 19:12:59 · 720 阅读 · 0 评论 -
leetcode-118. Pascal's Triangle
func generate(numRows int) [][]int { var arr [][] int; arr = make([][]int, numRows); var i, j int; for i = 0; i < numRows; i++ { arr[i] = make([]int, i + 1); for j = 0; j原创 2017-09-08 22:23:15 · 320 阅读 · 0 评论