开篇
随着业务不断发展,软件系统的架构也越来越复杂,但无论多复杂的业务最终在系统中实现的时候,无非是读写操作。用户根据业务规则写入商业数据,再根据查询规则获取想要的结果。通常而言我们会讲这些读写的数据放到一个数据库中保存,通过一套模型对其进行读写操作。而在大型系统中往往查询操作远远多于写入操作,于是就有了读写分离的思想,将读操作和写操作的……继续阅读 »
wangting
3年前 (2021-02-02) 727浏览
2个赞
java.net.SocketException如何才能更好的使用呢?这个就需要我们先要了解有关这个语言的相关问题。希望大家有所帮助。那么我们就来看看有关java.net.SocketException的相关知识。
第1个异常是 java.net.BindException:Address already in use: JVM_Bind。
该异常发生在服务……继续阅读 »
wangting
4年前 (2020-03-19) 1102浏览
0个赞
jdk源码里对String的介绍:
String 是不可变的,一旦被创建其值不能被改变. String buffers 支持可变String.
因为String是不可变的, 所以它们可以被共享.
例如:
String str = "abc";
等价于
char data[] = {'a', 'b', &……继续阅读 »
wangting
6年前 (2018-09-21) 50442浏览 78评论
0个赞
java并发编程中最长用到的关键字就是synchronized了,这里讲解一下这个关键字的用法和容易混淆的地方.
synchronized关键字涉及到锁的概念, 在java中,synchronized锁大家又通俗的称为:方法锁,对象锁 和 类锁 三种.
先上结论!
1 无论是修饰方法还是修饰代码块都是 对象锁,当一个线程访问一个带synchronized方法……继续阅读 »
wangting
6年前 (2018-09-11) 87011浏览 117评论
1个赞
尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。
面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。
本文将分别讲解经典的TCP协议建立连……继续阅读 »
wangting
6年前 (2017-11-16) 1415浏览
0个赞
一致性哈希算法背景
一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。
但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memc……继续阅读 »
wangting
6年前 (2017-11-14) 1301浏览
1个赞
volatile的两大作用
1保证内存可见性
2防止指令排序
注意: volatile并不保证操作的原子性.
(一) 内存可见性
1 概念 JVM内存模型:主内存和线程独立的工作内存
Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存(比如CPU的寄存器),线程只能访问自己的工作内存,不可以访问其它线程的工作内……继续阅读 »
wangting
6年前 (2017-11-11) 1399浏览
1个赞
一: 饱汉模式
[code lang=”java“]
/**
* 饱汉模式
* 懒加载
* 饱汉,即已经吃饱,不着急再吃,饿的时候再吃。
* 所以他就先不初始化单例,等第一次使用的时候再初始化,即“懒加载”。
* 好处: 启动快, 节省资源
* 坏处:线程不安全,if语句存在竞态条件
*/
public……继续阅读 »
wangting
6年前 (2017-11-02) 1522浏览
0个赞
import java.io.*;
/**
* Created by wangting1 on 2017/9/20.
*/
public class Test implements Serializable {
private static final long serialVersionUID = 1L;
pri……继续阅读 »
wangting
6年前 (2017-10-18) 1397浏览
0个赞
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String[] args) {
getStrings(); //用正则表达式获取指定字……继续阅读 »
wangting
7年前 (2017-08-31) 3520浏览
0个赞
一、基础篇
1.1 JVM
1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收
http://www.jcp.org/en/jsr/detail?id=133
1.1.2. 了解JVM各种参数及调优
1.1.3. 学习使用Java工具
https://github.com/alibaba/TProfiler
https://githu……继续阅读 »
wangting
7年前 (2017-08-11) 1862浏览
1个赞
/**
* Created by wangting1 on 2017/7/27.
*/
public class Fibonacci {
//f(0) = f0
//f(1) =1
//f(n) = f(n-1)+f(n-2) n>1
public static int fibonacci……继续阅读 »
wangting
7年前 (2017-07-27) 1602浏览
0个赞
public class Bean implements Comparable {
…
…
@Override
public int compareTo(Bean_oneExp o) {
if(this.timestamp != o.getTimestamp()){
return (int)(this.timestamp – o.ge……继续阅读 »
wangting
7年前 (2017-07-27) 4340浏览
0个赞
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需……继续阅读 »
wangting
7年前 (2017-07-26) 1391浏览
0个赞
//第一种:普遍使用,二次取值
System.out.println(“通过Map.keySet遍历key和value:”);
for (String key : map.keySet()) {
System.out.println(“key= “+ key + ” and value= R……继续阅读 »
wangting
7年前 (2017-07-26) 1426浏览
0个赞
比较简单的回答:
1、HashMap是非线程安全的,HashTable是线程安全的。
2、HashMap的键和值都允许有null值存在,而HashTable则不行。
3、因为线程安全的问题,HashMap效率比HashTable的要高。
HashMap 内部存储结构:
Java中数据存储方式最底层的两种结构,一种是数组,另一种就……继续阅读 »
wangting
7年前 (2017-07-26) 2124浏览
0个赞