开篇
随着业务不断发展,软件系统的架构也越来越复杂,但无论多复杂的业务最终在系统中实现的时候,无非是读写操作。用户根据业务规则写入商业数据,再根据查询规则获取想要的结果。通常而言我们会讲这些读写的数据放到一个数据库中保存,通过一套模型对其进行读写操作。而在大型系统中往往查询操作远远多于写入操作,于是就有了读写分离的思想,将读操作和写操作的……继续阅读 »
wangting
3年前 (2021-02-02) 732浏览
2个赞
java.net.SocketException如何才能更好的使用呢?这个就需要我们先要了解有关这个语言的相关问题。希望大家有所帮助。那么我们就来看看有关java.net.SocketException的相关知识。
第1个异常是 java.net.BindException:Address already in use: JVM_Bind。
该异常发生在服务……继续阅读 »
wangting
4年前 (2020-03-19) 1102浏览
0个赞
代码重构会不会太low?
说到重构,其实可能每个人心中的理解都不太一样。
单纯意义上来说,重构是对代码的再调整,在不改变业务逻辑的前提下,降低代码的长度、圈复杂度、重复度,提高其可读性、可维护性和可扩展性。简单来说,就是把代码整的规整干净,逻辑清晰,层次分明。
然而,这往往不是产品线希望得到的答案,不同的产品线在和我们接触的初期,都会很明确的说,我的系统需要……继续阅读 »
wangting
5年前 (2019-03-26) 1505浏览 3评论
1个赞
jdk源码里对String的介绍:
String 是不可变的,一旦被创建其值不能被改变. String buffers 支持可变String.
因为String是不可变的, 所以它们可以被共享.
例如:
String str = "abc";
等价于
char data[] = {'a', 'b', &……继续阅读 »
wangting
6年前 (2018-09-21) 50442浏览 78评论
0个赞
给定一个数组,求和为定值的所有组合, 这道算法题在leetcode应该算是中等偏下难度, 对三到五年工作经验主要做业务开发的同学来说, 一般较难的也就是这种程度了.
简述经过:
不算hr面,总计四面,第一天前三面, 然后过了一个多星期第四面(领导一般都比较忙~)
平均每一面都是一小时,面完前三面已经很辛苦了.
我之前去美团面试从一面到hr面,总计四面 面了……继续阅读 »
wangting
6年前 (2018-09-16) 18876浏览
0个赞
一.出发点:
之前在知乎看到一位大牛(二胖)写的一篇文章:python爬取知乎最受欢迎的妹子(大概题目是这个,具体记不清了),但是这位二胖哥没有给出源码,而我也没用过python,正好顺便学一学,所以我决定自己动手搞一搞.
爬取已经完成,文末有 python的源码和妹子图片的百度云地址
二.准备:
爬虫还是要用python(之前用过一个国人大牛写的java爬……继续阅读 »
wangting
6年前 (2018-09-13) 9558浏览
1个赞
java并发编程中最长用到的关键字就是synchronized了,这里讲解一下这个关键字的用法和容易混淆的地方.
synchronized关键字涉及到锁的概念, 在java中,synchronized锁大家又通俗的称为:方法锁,对象锁 和 类锁 三种.
先上结论!
1 无论是修饰方法还是修饰代码块都是 对象锁,当一个线程访问一个带synchronized方法……继续阅读 »
wangting
6年前 (2018-09-11) 87011浏览 117评论
1个赞
前面了解了scrapy框架的大概各个组件的作用,
现在要爬取知乎数据,那么第一步就是要登录!
看下知乎的登录页面发现登录主要是两大接口
一: 登录页面地址,获取登录需要的验证码,如下图
打开知乎登录页面,需要输入用户名和密码, 还有一个验证码,
看chrome 调试工具发现验证码是这个地址返回的: https://www.zhihu.com/api/v3/o……继续阅读 »
wangting
6年前 (2018-09-10) 4983浏览 4评论
1个赞
python的scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架
python和scrapy的安装就不介绍了,资料很多
这里我个人总结一下,能更加快理解scrapy和快速上手一个简单的爬虫程序
首先开始一个scrapy项目
用命令: scrapy startproject 项目名
创建出来的文件如下图:红框是我的命令,蓝框是scrapy自……继续阅读 »
wangting
6年前 (2018-09-10) 8416浏览 29评论
0个赞
尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。
面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。
本文将分别讲解经典的TCP协议建立连……继续阅读 »
wangting
6年前 (2017-11-16) 1424浏览
0个赞
一致性哈希算法背景
一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。
但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memc……继续阅读 »
wangting
6年前 (2017-11-14) 1305浏览
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) 1532浏览
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) 1409浏览
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) 1612浏览
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) 1432浏览
0个赞