05 2018 档案

摘要:一、客户端通信协议 二、Java客户端Jedis 1.获取Jedis Jedis属于Java的第三方开发包,在Java中获取第三方开发包通常有两种方式: 直接下载目标版本的Jedis-${version}.jar包加入到项目中。 使用集成构建工具,例如maven、gradle等将Jedis目标版本的 阅读全文
posted @ 2018-05-31 10:10 BigJunOba 阅读(612) 评论(0) 推荐(0)
摘要:一、慢查询分析 许多存储系统(例如MySql)提供慢查询日志帮助开发和运维人员定位系统存在的慢操作。 所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阈值,就将这条命令的相关信息(例如:发生时间、耗时、命令的详细信息)记录下来,Redis也提供了类似的功能。 Redis客户端执 阅读全文
posted @ 2018-05-31 10:08 BigJunOba 阅读(560) 评论(0) 推荐(0)
摘要:一、基础知识 1.全局命令 keys * :查看所有键 dbsize:返回当前数据库中键的总数 exists key:检查键是否存在 del key ... :删除键 expire key seconds:对键添加过期时间 ttl key:返回键的剩余过期时间(-1键没设置过期时间,-2键不存在) 阅读全文
posted @ 2018-05-31 10:05 BigJunOba 阅读(422) 评论(0) 推荐(0)
摘要:一、Redis是什么 Redis是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理 阅读全文
posted @ 2018-05-31 09:23 BigJunOba 阅读(326) 评论(0) 推荐(0)
摘要:创建Spring的主要目的是用来替代更加重量级的企业级Java技术,尤其是EJB(Enterprise JavaBean 企业级JavaBean)。相对于EJB来说,Spring提供了更加轻量级和简单的编程模型。它增强了简单老式Java对象(Plain Old Java Object, POJO)的 阅读全文
posted @ 2018-05-30 16:41 BigJunOba 阅读(166) 评论(0) 推荐(0)
摘要:在直系学长曾经的指导下,参考了直系学长的博客(https://www.cnblogs.com/WellHold/p/6655769.html)学习Spring的另一个核心概念--面向切片编程,即AOP(Aspect Oriented Programming)。 Java是一种经典的面向对象的编程语言 阅读全文
posted @ 2018-05-28 15:56 BigJunOba 阅读(340) 评论(0) 推荐(0)
摘要:控制反转的概念:控制反转是一种通过描述(在Java中或者是XML或者注解)并通过第三方去产生或获取特定对象的方式。 在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection, DI)。 在Spring中,对象无需自己查找或者创建与其所关联的其他对象。 阅读全文
posted @ 2018-05-23 11:46 BigJunOba 阅读(305) 评论(0) 推荐(0)
摘要:一、Hadoop框架 1.HDFS(分布式文件系统) 2.MapReduce(分布式计算框架) 3.YARN(集群资源管理器) 4.Zookeeper(分布式协作服务) 5.Ambari(管理工具) 二、Spark(内存计算框架) 1.Scala 2.Spark SQL 3.Spark Stream 阅读全文
posted @ 2018-05-18 10:12 BigJunOba 阅读(781) 评论(0) 推荐(0)
摘要:解决上述问题之后,作为“客户”的我,又觉得启动的时候启动的是若干个客户端窗口文件和一个服务器文件,服务器的输出都是在控制台输出的,有了之前解决问题的经验,考虑能不能写一个服务器窗口文件,将服务器的输出都放在窗口里面,这样启动的时候都是启动的是窗口文件,个人感觉好一些。 于是有了修改后的第二版程序: 阅读全文
posted @ 2018-05-12 21:32 BigJunOba 阅读(197) 评论(0) 推荐(0)
摘要:接(原创)小程序设计(二)一起来聊天吧! 最终效果图(左一:主机2(客户端1)、中:主机1(服务器、客户端2)、右1:主机1分屏(客户端3)) 客户端1: 客户端2: 客户端3: 服务器输出: 相关代码已上传至github。 阅读全文
posted @ 2018-05-12 19:26 BigJunOba 阅读(252) 评论(0) 推荐(0)
摘要:又过了一天,迎来了周末,然而本人仍然心心念念着如何对代码进行更加详细的测试,于是就吃完中午饭马上跑来实验室用媳妇儿的电脑进行测试了。 主要测试的预期就是,两台电脑之间运行代码后能够聊天,本来以为很简单呢,谁知道到处是坑,于是就费了好几个小时不断出现问题然后解决问题,不断出现bug然后分析代码,对代码 阅读全文
posted @ 2018-05-12 19:24 BigJunOba 阅读(323) 评论(0) 推荐(0)
摘要:最近由于项目需要接触了一些网络编程方面的东西,也理解了IP地址的一些操作、TCP套接字操作和UDP数据包操作。其中用的最多的当然是TCP套接字了,为了根据实例程序进行更好的学习,特地学习了《Java程序设计 慕课版》这本书有关网络程序设计的网络聊天室案例,这个案例程序在之前的博客里也有写到,有兴趣的 阅读全文
posted @ 2018-05-11 16:28 BigJunOba 阅读(317) 评论(0) 推荐(0)
摘要:一、基础知识 1.TCP:传输控制协议。 2.UDP:用户数据报协议。 二、IP地址封装 1.InetAddress类的常用方法 2.示例1:测试IP地址从“192.168.131.1”到“192.168.131.150”范围内所有可以访问的主机的名称,如果对方没有安装防火墙,并且网络连接正常的话, 阅读全文
posted @ 2018-05-09 21:27 BigJunOba 阅读(3943) 评论(0) 推荐(1)
摘要:一、IP InetAddress类有一些静态工厂方法,可以连接到DNS服务器来解析主机名。 示例1:InetAddress address = InetAddress.getByName("www.baidu.com");会建立一个与本地DNS服务器的一个连接,来查找域名和IP地址。 示例2:查找本 阅读全文
posted @ 2018-05-09 15:06 BigJunOba 阅读(334) 评论(0) 推荐(0)
摘要:一、进程产生的方式 1.描述进程的ID号通常叫做PID,即进程ID,PID的变量类型为pid_t。 2.getpid(void)返回当前进程的ID号,getppid(void)返回当前进程的父进程的ID号。 3.fork()函数以父进程为蓝本复制一个进程,其ID号和父进程ID号不同,父进程中返回的是 阅读全文
posted @ 2018-05-07 10:06 BigJunOba 阅读(313) 评论(0) 推荐(0)
摘要:1.Vim编辑器分为普通模式和插入模式,普通模式是命令模式,插入模式是编辑模式。 2.使用Vim建立一个hello.c的新文件:vim hello.c 3.普通模式下,使用h、j、k、l分别对应左、下、上、右。 4.普通模式下,将光标移到需要删除的字符上面然后按x键可以删除一个字符。 5.普通模式下 阅读全文
posted @ 2018-05-07 09:10 BigJunOba 阅读(193) 评论(0) 推荐(0)
摘要:一、线程的状态 线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中。 调用与线程有关的方法后,会进入不同的线程状态,这些状态之间某些是可双向切换的,比如WAITING和RUNNING状态之间可以循环地进行切换;而有些是单向切换的,比如线程销毁后并不能自动进入RUNNING状态。 阅读全文
posted @ 2018-05-04 16:45 BigJunOba 阅读(640) 评论(0) 推荐(0)
摘要:在使用多线程技术的单例模式时会出现一些意想不到的情况,这样的代码如果在生产环境中出现异常,有可能造成灾难性的后果。 一、立即加载/“饿汉模式” 立即加载就是使用类的时候已经将对象创建完毕,常见的实现方法就是直接new实例化。立即加载/“饿汉模式”是在调用方法前,实例已经被创建了。 示例:从输出结果可 阅读全文
posted @ 2018-05-04 16:40 BigJunOba 阅读(443) 评论(0) 推荐(0)
摘要:一、定时器Timer的使用 在JDK库中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务。Timer类的主要作用就是设置计划任务,但封装任务的类确实TimerTask类,执行计划任务的代码要放入TimerTask类的子类中,因为TimerTask是一个抽象类。 1.方法sch 阅读全文
posted @ 2018-05-04 16:37 BigJunOba 阅读(482) 评论(0) 推荐(0)
摘要:一、使用ReentrantLock类 在Java多线程中,可以使用synchronized关键字来实现线程之间的同步互斥,但ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如具有嗅探锁定、多路分支通知等功能,而且在使用上也比synchronized更加的灵活。 1.使用 阅读全文
posted @ 2018-05-04 16:33 BigJunOba 阅读(734) 评论(0) 推荐(0)
摘要:线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体。线程间的通信就是成为整体的必用方案之一,可以说,使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使程序员对各线程任务在处理的过程中进行有效地把控与监督。 一、等待/通知机制 1.不使用等待/通 阅读全文
posted @ 2018-05-02 14:21 BigJunOba 阅读(13934) 评论(1) 推荐(1)
摘要:一、synchronized同步方法 1.方法内的变量为线程安全 “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,所得结果也就是“线程安全”的了。 示例:由于HasSelfPrivateNum类中的addI(String username)方法的num变 阅读全文
posted @ 2018-05-02 11:44 BigJunOba 阅读(706) 评论(0) 推荐(0)
摘要:一、进程和多线程的概念以及线程的优点 打开Windo任务管理器可以看到很多正在运行着的exe程序,完全可以将运行在内存中的exe文件理解成进程,进程是受操作系统管理的基本运行单元。 线程可以理解成在进程中独立运行的子任务。比如,QQ.exe运行时就有很多的子任务在同时运行。 使用线程,可以最大限度地 阅读全文
posted @ 2018-05-02 10:46 BigJunOba 阅读(480) 评论(0) 推荐(0)