2019年1月28日

深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3

摘要: HTTP/HTTPS请求和响应 前面TCP连接已经建立好了,意味着桥已经搭好了,下一步就该传输HTTP消息了。因为HTTP我们都很熟悉,很常见,也不是那么底层,理解起来轻松不少。 还是抓包来分析,不过这次不用Wireshark来抓,因为不太直观,这次直接用Chrome自带的Developer Too 阅读全文

posted @ 2019-01-28 13:44 我是司 阅读(378) 评论(0) 推荐(0)

14个最常见的Kafka面试题及答案

摘要: 1、请说明什么是Apache Kafka? Apache Kafka是由Apache开发的一种发布订阅消息系统,它是一个分布式的、分区的和重复的日志服务。 2、请说明什么是传统的消息传递方法? 传统的消息传递方法包括两种: 排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。 阅读全文

posted @ 2019-01-28 13:44 我是司 阅读(1000) 评论(0) 推荐(0)

深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1

摘要: 从本文里学到什么? 正如前面所说,这篇文章涉及到的知识面非常丰富,我相信您绝对可以从本文里学到很多基础知识,还有一些高级话题。 自认为是目前写的最详细的一篇文章了,因为里面有理论,有实战,应该会起到一个比较好的效果。 总概: 几大步骤 总的来说,当你输入在浏览器里输入一个URL到页面加载,发生的顺序 阅读全文

posted @ 2019-01-28 13:43 我是司 阅读(375) 评论(0) 推荐(0)

深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 2

摘要: TCP连接 DNS解析返回域名的IP之后,接下来就是浏览器要和该IP建立TCP连接了。为什么是TCP而不是UDP?那是因为HTTP是基于TCP上的。这里涉及到另外一个话题:TCP/IP 模型。这个已经在大学的课本上学过了,我们再复习一下。 TCP/IP模型 TCP/IP模型一般分为4层,下面是我用P 阅读全文

posted @ 2019-01-28 13:43 我是司 阅读(196) 评论(0) 推荐(0)

java的排序算法

摘要: 简单选择排序: 简单选择排序: package cn.mdj.test; public class SelectSort { public static void sort(int array[]){ int len = array.length; int temp; //临时变量 int inde 阅读全文

posted @ 2019-01-28 13:39 我是司 阅读(198) 评论(0) 推荐(0)

线性表之--链表操作

摘要: 1 package cn.mdj.singlelink; 2 3 class Link{ 4 //链表是由节点组成,所以定义一个Node节点 5 private class Node{ 6 //节点的数据分为 数据域 和指针域 所以: 每一个指针域指向下一个节点,而数据域是可以存放任何数据类型 7 阅读全文

posted @ 2019-01-28 13:38 我是司 阅读(122) 评论(0) 推荐(0)

线性表之--队列操作

摘要: 1 package cn.njupt.mdj.queue; 2 3 4 /* 5 * 好好理解思路,才是最重要的,画图可以帮助理解! 6 * 7 */ 8 9 //定义好一个队列的结构,此种队列采用的是this.tail=-1;完成的,也可以用this.tail=0;完成 10 class Queu 阅读全文

posted @ 2019-01-28 13:37 我是司 阅读(178) 评论(0) 推荐(0)

线性表之--顺序表

摘要: 1 package cn.njupt.mdj; 2 3 class linerTable<E>{ 4 private Object[] data = null; 5 private int capacity; 6 private int current; 7 8 //默认大小 9 public li 阅读全文

posted @ 2019-01-28 13:37 我是司 阅读(166) 评论(0) 推荐(0)

JSP 学习二

摘要: 在基于昨天对JSP学习的基础上,今天我们来学习JSP的指令和JSP 对中文的处理。 一、JSP指令简介 JSP 指令是为JSP引擎而设计,它并不直接产生任何可见的输出,而只是告诉引擎如何处理JSP页面中其余的部分。 JSP的指令共定义了三个指令: page指令 include指令 taglib指令 阅读全文

posted @ 2019-01-28 13:32 我是司 阅读(333) 评论(0) 推荐(0)

JSP 学习一

摘要: 今天开始JSP的学习,作为Web开发人员,对JSP的开发是必不可少的,因此有必要对JSP进行掌握和学习;为此开始JSP的学习: 今日目标: 1)什么是JSP? 2)JSP的运行机制? 3)JSP的三种标签以及区别? 4)JSP和HTML的注释区别? 5)JSP和Servlet的区别? 一、什么是JS 阅读全文

posted @ 2019-01-28 13:31 我是司 阅读(112) 评论(0) 推荐(0)

web开发之Servlet 三

摘要: 昨天我们学习了Servlet的运行过程和生命周期,那么今天我们学习下Servlet中非常重要的两个类:ServletConfig ServletContext 我们可以看到,与顶层Servlet主动关联的是ServletConfig ServletRequest ServletResponse ,它 阅读全文

posted @ 2019-01-28 13:30 我是司 阅读(375) 评论(0) 推荐(0)

web开发之Servlet 二

摘要: 在上一篇文章中,我们演示也证明了Servlet 是一种动态web资源开发的技术,即我可以在浏览器中输入URL,然后就可以在浏览器中看到我们编写的Servlet资源。 那当我们在浏览器上一起一个HTTP请求之后,具体的流程是怎么样的呢?借用LinkinStar博文中的图: 上面这副图讲解了整个HTTP 阅读全文

posted @ 2019-01-28 13:29 我是司 阅读(134) 评论(0) 推荐(0)

web开发之Servlet 一

摘要: 因为最近在研究公司一套新的框架,发现这套框架的底层是对Struts2,Spring 封装后的WEB应用框架,而我发现如果仅仅是利用这个框架开发,确实很容易快速上手,做业务来说是没有问题的,但我觉得如果只对上层如何去用熟悉是不行,必须要学习其底层是如何玩的,而任何一套WEB应用框架的开发,肯定都是基于 阅读全文

posted @ 2019-01-28 13:28 我是司 阅读(230) 评论(0) 推荐(0)

Struts2_day03

摘要: 一、上节回顾 1 在action获取表单提交数据 (1)使用ActionContext类获取 (2)使用ServletActionContext类获取 (3)接口注入 2 结果配置 (1)全局结果页面和局部结果页面 (2)result标签type属性 - type属性值: -- 默认值是dispat 阅读全文

posted @ 2019-01-28 13:26 我是司 阅读(115) 评论(0) 推荐(0)

Struts2_day04

摘要: 一、回顾 1什么是值栈 (1)action和servlet区别 2 如何获取值栈对象 3 值栈内部结构 (1)root和context 4 向值栈放数据 (1)向值栈放字符串 (2)向值栈放对象 (3)向值栈放list集合 5 从值栈获取数据 (1)从值栈获取字符串 (2)从值栈获取对象 <s:pr 阅读全文

posted @ 2019-01-28 13:26 我是司 阅读(88) 评论(0) 推荐(0)

Struts2_day01

摘要: 一、内容大纲 1 struts2概述 (1)应用在web层 2 struts2入门案例 3 struts2底层执行过程 4 struts2相关配置 (1)struts.xml配置 - package、action、result标签 (2)常量配置 (3)分模块开发 5 struts2的action创 阅读全文

posted @ 2019-01-28 13:25 我是司 阅读(112) 评论(0) 推荐(0)

Struts2_day02

摘要: 一、内容大纲 1 结果页面配置 (1)全局结果页面 (2)局部结果页面 - 配置全局也配置局部,最终局部为准 (3)result标签type属性 - 默认值 dispatcher做转发 - redirect做重定向 - chain:转发到action - redirectAction:重定向到act 阅读全文

posted @ 2019-01-28 13:25 我是司 阅读(141) 评论(0) 推荐(0)

SpringMVC学习笔记_02

摘要: 1、springmvc对多视图的支持 (1)导入xml格式视图支持的jar包 注意:springmvc本身就支持xml格式,所以不用导入其他支持的jar包了。 (2)在springmvc.xml中配置支持多视图 小结:通过以上配置,模拟了WebService对多视图的支持的功能。(3)配置javab 阅读全文

posted @ 2019-01-28 13:24 我是司 阅读(127) 评论(0) 推荐(0)

SpringMVC学习笔记_01

摘要: 1、JAVAEE体系结构 JAVAEE体系结构图如下所示: 2、什么是springmvc? 什么是mvc? Model1 Model2 SpringMVC是什么? SpringMVC是一个web层mvc框架,类似struts2。 SpringMVC和Spring? Springmvc是Spring的 阅读全文

posted @ 2019-01-28 13:23 我是司 阅读(120) 评论(0) 推荐(0)

Spring 学习04

摘要: 一、上节内容回顾 1 基于aspectj的注解aop操作 2 spring的jdbcTemplate操作 (1)实现crud操作 - 添加、修改、删除update方法 - 查询 -- 查询某个值 queryForObject -- 查询对象queryForObject -- 查询list query 阅读全文

posted @ 2019-01-28 13:22 我是司 阅读(122) 评论(0) 推荐(0)

Spring 学习02

摘要: 一、上节内容回顾 1 spring的概念 (1)核心:ioc和aop (2)spring一站式框架 2 spring的bean管理(xml) (1)bean实例化 (2)注入属性 (3)注入对象属性 3 ioc和di (1)ioc:控制反转,把对象创建交给spring管理 (2)di:依赖注入,创建 阅读全文

posted @ 2019-01-28 13:21 我是司 阅读(127) 评论(0) 推荐(0)

Spring 学习03

摘要: 一、上节内容回顾 1 注解ioc操作 (1)使用注解创建对象 - 四个注解 (2)使用注解注入属性 - 两个注解 2 aop (1)aop原理 (2)aop术语 - 切入点 - 增强 - 切面 3 spring的aop操作 (1)基于aspectj的xml方式 二、今天内容介绍 1 基于aspect 阅读全文

posted @ 2019-01-28 13:21 我是司 阅读(109) 评论(0) 推荐(0)

Redis学习十一:Redis的Java客户端Jedis

摘要: 一、安装JDK tar -zxvf jdk-7u67-linux-i586.tar.gz vi /etc/profile 重启一次Centos 编码验证 二、安装eclipse 三、Jedis所需要的jar包 Commons-pool-1.6.jar Jedis-2.1.0.jar 四、Jedis常 阅读全文

posted @ 2019-01-28 13:20 我是司 阅读(198) 评论(0) 推荐(0)

Spring 学习01

摘要: 一、Spring概念 1 spring是开源的轻量级框架 2 spring核心主要两部分: (1)aop:面向切面编程,扩展功能不是修改源代码实现 (2)ioc:控制反转, - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要n 阅读全文

posted @ 2019-01-28 13:20 我是司 阅读(140) 评论(0) 推荐(0)

Redis学习十:Redis的复制(Master/Slave)【重要】

摘要: 一、是什么 官网 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 二、能干嘛 读写分离 容灾恢复 三、怎么玩 1.配从(库)不配主(库) 2.从库配置:slaveof 主库IP 主库端口 说明: 阅读全文

posted @ 2019-01-28 13:19 我是司 阅读(189) 评论(0) 推荐(0)

Redis学习八:Redis的事务

摘要: 一、是什么 可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞。 二、能干嘛 一个队列中,一次性、顺序性、排他性的执行一系列命令 三、怎么玩 1.常用命令 2.Case1:正常执行 3.Case2:放弃事务 4.Case3:全 阅读全文

posted @ 2019-01-28 13:18 我是司 阅读(112) 评论(0) 推荐(0)

Redis学习九:Redis的发布订阅

摘要: 发布订阅功能,redis也具备,但是要知道的是redis主要功能还是分布式的缓存功能,因此这种订阅发布功能很少用,有专门的kafka activemq 等消息中间件来完成,因此本文只是简单介绍,了解即可,后面会专门讲解kafka 一、是什么 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者 阅读全文

posted @ 2019-01-28 13:18 我是司 阅读(149) 评论(0) 推荐(0)

Redis学习六:Redis的持久化-AOF

摘要: AOF(Append Only File) 一、是什么 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢 阅读全文

posted @ 2019-01-28 13:17 我是司 阅读(102) 评论(0) 推荐(0)

Redis学习七:Redis的持久化-总结(Which one)

摘要: 1.官网建议 2.RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储 3.AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些 命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积 阅读全文

posted @ 2019-01-28 13:17 我是司 阅读(135) 评论(0) 推荐(0)

Redis学习五:Redis的持久化-RDB

摘要: RDB(Redis DataBase) 一、是什么 1.概念:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 2.执行方式: Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都 阅读全文

posted @ 2019-01-28 13:16 我是司 阅读(155) 评论(0) 推荐(0)

Redis学习四:解析配置文件 redis.conf

摘要: 一、它在哪 地址: 思考:为什么要将它拷贝出来单独执行? 二、Units单位 1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit2 对大小写不敏感 三、INCLUDES包含 和我们的Struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸 阅读全文

posted @ 2019-01-28 13:15 我是司 阅读(183) 评论(0) 推荐(0)

Redis学习三:Redis数据类型

摘要: 一、Redis的五大数据类型 1.String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string 阅读全文

posted @ 2019-01-28 13:14 我是司 阅读(160) 评论(0) 推荐(0)

Redis学习一:Nosql入门和概述

摘要: 现在Redis越来越火,为了适应技术的发展,开始学习一下Redis,在学习Redis之前先学习一下Nosql。 第一部分:入门概述 1.1 互联网时代背景下大机遇,为什么用nosql 1.1.1 单机Mysql的美好年代(好几年前) 当时的业务很相对简单,就是JSP >Action >Service 阅读全文

posted @ 2019-01-28 13:13 我是司 阅读(592) 评论(0) 推荐(1)

Redis学习二:Redis入门介绍

摘要: 一、入门概述 1.是什么 Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称 阅读全文

posted @ 2019-01-28 13:13 我是司 阅读(130) 评论(0) 推荐(0)

JAVA提高二十:CopyOnWriteArrayList&CopyOnWriteArraySet&ConcurrentHashMap介绍

摘要: 前面我们将java集合类的大部分类都进行了深入分析,但我们会发现一个共性问题就是并发的问题,那么如何解决呢?我们前面基本都是通过Collections的一个工具类来进行的解决,但实际大部分使用中人们普遍会使用并发的容器,在JDK1.5之后,针对基于散列的Map,提供了新的ConcurrentHash 阅读全文

posted @ 2019-01-28 11:42 我是司 阅读(979) 评论(0) 推荐(0)

JAVA提高十八:Vector&Stack深入分析

摘要: 前面我们已经接触过几种数据结构了,有数组、链表、Hash表、红黑树(二叉查询树),今天再来看另外一种数据结构:栈。 什么是栈呢,我们先看一个例子:栈就相当于一个很窄的木桶,我们往木桶里放东西,往外拿东西时会发现,我们最开始放的东西在最底部,最先拿出来的是刚刚放进去的。所以,栈就是这么一种先进后出(  阅读全文

posted @ 2019-01-28 11:41 我是司 阅读(336) 评论(0) 推荐(0)

JAVA提高十九:WeakHashMap&EnumMap&LinkedHashMap&LinkedHashSet深入分析

摘要: 因为最近工作太忙了,连续的晚上支撑和上班,因此没有精力来写下这篇博客,今天上午正好有一点空,因此来复习一下不太常用的集合体系大家族中的几个类:WeakHashMap&EnumMap&LinkedHashMap&LinkedHashSet,以便用到的时候不至于是什么都不知道。好了,言归正传,下面我们开 阅读全文

posted @ 2019-01-28 11:41 我是司 阅读(169) 评论(0) 推荐(0)

Java提高十七:TreeSet 深入分析

摘要: 前一篇我们分析了TreeMap,接下来我们分析TreeSet,比较有意思的地方是,似乎有Map和Set的地方,Set几乎都成了Map的一个马甲。此话怎讲呢?在前面一篇讨论HashMap和HashSet的详细实现讨论里,我们发现HashSet的详细实现都是通过封装了一个HashMap的成员变量来实现的 阅读全文

posted @ 2019-01-28 11:40 我是司 阅读(186) 评论(0) 推荐(0)

JAVA提高十四:HashSet深入分析

摘要: 前面我们介绍了HashMap,Hashtable,那么还有一个hash家族,那就是HashSet;在讲解HashSet前,大家先要知道的是HashSet是单值集合的接口,即是Collection下面的,而HashMap是Map下面的,但是它和HashMap又是有关系的,所以在使用的时候大家需求要注意 阅读全文

posted @ 2019-01-28 11:39 我是司 阅读(144) 评论(0) 推荐(0)

Java提高十五:容器元素比较Comparable&Comparator深入分析

摘要: 我们经常用容器来存放元素,通常而言我们是不关系容器中的元素是否有序,但有些场景可能要求容器中的元素是有序的,这个时候用ArrayList LinkedList Hashtable HashMap HashSet 这些容器本身存放的时候就没有办法做到了,这个时候我们有两种思路:第一种思路:对刚刚我们提 阅读全文

posted @ 2019-01-28 11:39 我是司 阅读(218) 评论(0) 推荐(0)

JAVA提高十三:Hashtable&Properties深入分析

摘要: 最近因为一些琐碎的事情,导致一直没时间写博客,正好今天需求开发完的早,所以趁早写下本文,本文主要学习的是Hashtable的分析,因为上面一篇文章研究的是HashMap,而Hashtable和HashMap之间存在相似处,是面试中经常会问到的一个问题,因此进行下分析;而之所以加上Properties 阅读全文

posted @ 2019-01-28 11:38 我是司 阅读(137) 评论(0) 推荐(0)

WebService学习总结

摘要: 一、简介 大家或多或少都听过 WebService(Web服务),有一段时间甚至很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 阅读全文

posted @ 2019-01-28 11:36 我是司 阅读(334) 评论(0) 推荐(0)

JAVA提高十二:HashMap深入分析

摘要: 首先想说的是关于HashMap源码的分析园子里面应该有很多,并且都是分析得很不错的文章,但是我还是想写出自己的学习总结,以便加深自己的理解,因此就有了此文,另外因为小孩过来了,因此更新速度可能放缓了,(#^.^#) 一、HashMap的简单使用 学习任何一个集合,首先最基本的是学会使用,因此首先我们 阅读全文

posted @ 2019-01-28 11:35 我是司 阅读(113) 评论(0) 推荐(0)

JAVA提高十一:LinkedList深入分析

摘要: 上一节,我们学习了ArrayList 类,本节我们来学习一下LinkedList,LinkedList相对ArrayList而言其使用频率并不是很高,因为其访问元素的性能相对于ArrayList而言比较慢,至于原因我们下面讲开始讲解,本节重点是了解其内部的结构,会简单实现一个简单的LinkedLis 阅读全文

posted @ 2019-01-28 11:34 我是司 阅读(150) 评论(0) 推荐(0)

JAVA提高十:ArrayList 深入分析

摘要: 前面一章节,我们介绍了集合的类图,那么本节将学习Collection 接口中最常用的子类ArrayList类,本章分为下面几部分讲解(说明本章采用的JDK1.6源码进行分析,因为个人认为虽然JDK1.8进行了部分改动,但万变不离其宗,仍然采用的JDK1.6的引子进行的优化,因此学会了1.6对于1.8 阅读全文

posted @ 2019-01-28 11:33 我是司 阅读(295) 评论(0) 推荐(0)

JAVA提高九:集合体系

摘要: 在经过了前面的JDK6.0新特性的学习后,将进一步深入学习JDK,因为集合的重要性,因此从集合开始入手分析: 一、集合概况 Java是一种面向对象语言,如果我们要针对多个对象进行操作,那么首先必要将多个对象进行保存起来之后,然后才能操作,那么我们肯定会想到用数组来进行存放,但数组长度固定,不能满足变 阅读全文

posted @ 2019-01-28 11:32 我是司 阅读(217) 评论(0) 推荐(0)

JAVA提高八:动态代理技术

摘要: 一、引出动态代理 生活中代理应该是很常见的,比如你可以通过代理商去买电脑,也可以直接找厂商买电脑,最终都是买到了电脑。程序中也一样存在代理的情况,比如要为已经存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如:异常处理、日志、计算方法耗时等等,那么我们会怎么做呢? 1.会编写一个与目标类 阅读全文

posted @ 2019-01-28 11:31 我是司 阅读(314) 评论(0) 推荐(0)

redis 基础学习总结

摘要: 一 、Redis简介 介绍Redis之前,先了解下NoSQL (Not noly SQL)不仅仅是SQL 属于非关系型数据库;Redis就属于非关系型数据库 传统的Mysql ,oracle ,sql server 等 都是关系型数据库 为什么需要NoSQL,主要应对以下问题,传统关系型数据库力不从 阅读全文

posted @ 2019-01-28 11:28 我是司 阅读(133) 评论(0) 推荐(0)

httpclient 学习

摘要: Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很 阅读全文

posted @ 2019-01-28 11:19 我是司 阅读(324) 评论(0) 推荐(0)

JAVA中反射机制五(JavaBean的内省与BeanUtils库)

摘要: 内省(Introspector) 是Java 语言对JavaBean类属性、事件的一种缺省处理方法。 JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值 阅读全文

posted @ 2019-01-28 11:17 我是司 阅读(611) 评论(0) 推荐(0)

JAVA中反射机制六(java.lang.reflect包)

摘要: 一、简介 java.lang.reflect包提供了用于获取类和对象的反射信息的类和接口。反射API允许对程序访问有关加载类的字段,方法和构造函数的信息进行编程访问。它允许在安全限制内使用反射的字段,方法和构造函数对其底层对等进行操作。 二、java.lang.reflect AccessibleO 阅读全文

posted @ 2019-01-28 11:17 我是司 阅读(3715) 评论(0) 推荐(0)

JAVA中反射机制二

摘要: 反射二 利用反射创建对象 1.利用反射创建对象,首先我们创建一个类,类里面,我们知道构造函数有默认的构造函数,带参数的构造函数,私有的构造函数,如下,创建一个Person类: 2.利用反射创建出我们的Person类的实例,为了测试,因此上面在Person中有一个属性为public String na 阅读全文

posted @ 2019-01-28 11:16 我是司 阅读(243) 评论(1) 推荐(0)

JAVA中反射机制三

摘要: 反射三 利用反射获取对象的方法,并调用方法 1.利用反射获取对象的方法,我们仍然利用上面的Person类,然后在里面建立方法,方法我们知道有无参方法,有参方法,私有方法,静态方法,如下所示: 2.通过反射我们要获取方法,并执行方法,代码如下: 3.特殊main方法如何调用: 产生错误的原因为,在JD 阅读全文

posted @ 2019-01-28 11:16 我是司 阅读(179) 评论(0) 推荐(0)

JAVA中反射机制四

摘要: 反射四 利用反射获取类的属性 1.通过反射也可以获取到类中的属性,假设我们继续使用Person这个类,然后设置部分属性,公有属性,私有属性,静态属性 2.然后通过反射获取属性 3.前面我们学习了获取类的属性,方法,构造对象,那么我们现在模拟下java的内省操作,如下: 思路:定义一个Model类,里 阅读全文

posted @ 2019-01-28 11:16 我是司 阅读(151) 评论(0) 推荐(0)

JAVA中反射机制一

摘要: 反射一 基本概念 一、反射机制的基本概念 什么是反射?反射是指在运行状态中,对于任意一个类,都可以获取到这个类的所有属性和方法;对于任意一个对象,都能够调用这个对象的任意方法和属性;这种动态获取信息及动态调用对象的方法,称为JAVA语言的反射机制。 二、反射可以做什么 我知道了反射的概念,那么反射可 阅读全文

posted @ 2019-01-28 11:15 我是司 阅读(166) 评论(0) 推荐(0)

Hibernate_day03

摘要: 一、今天内容 0 列表功能实现 1 表与表之间关系回顾 (1)一对多(客户和联系人) (2)多对多(用户和角色) 2 hibernate一对多操作 (1)一对多映射配置 (2)一对多级联保存 (3)一对多级联删除 (4)inverse属性 3 hibernate多对多操作 (1)多对多映射配置 (2 阅读全文

posted @ 2019-01-28 11:13 我是司 阅读(125) 评论(0) 推荐(0)

Hibernate_day04

摘要: 一、今天内容 1 hibernate的查询方式 2 对象导航查询 3 hql查询 (1)查询所有 (2)条件查询 (3)排序查询 (4)分页查询 (5)投影查询 (6)聚集函数使用 4 qbc查询 (1)查询所有 (2)条件查询 (3)排序查询 (4)分页查询 (5)统计查询 (6)离线查询 5 h 阅读全文

posted @ 2019-01-28 11:13 我是司 阅读(114) 评论(0) 推荐(0)

Hibernate_day01

摘要: 一、今天内容介绍 1 web内容回顾 (1)javaee三层结构 (2)mvc思想 2 hibernate概述 3 hibernate入门案例 4 hibernate配置文件 5 hibernate的api使用 二、WEB内容回顾 1.JavaEE三层结构 1 web层:struts2框架 2 se 阅读全文

posted @ 2019-01-28 11:12 我是司 阅读(171) 评论(0) 推荐(0)

Hibernate_day02

摘要: 一、今天内容 1 实体类编写规则 2 hibernate主键生成策略 (1)native (2)uuid 3 实体类操作 (1)crud操作 (2)实体类对象状态 4 hibernate的一级缓存 5 hibernate的事务操作 (1)事务代码规范写法 6 hibernate其他的api(查询) 阅读全文

posted @ 2019-01-28 11:12 我是司 阅读(161) 评论(0) 推荐(0)

JVM学习十三:JVM之堆分析

摘要: 本章进入JVM学习的最后一节,此节主要分析的是堆,因为堆是JAVA程序中最常用使用到的地方,因此对这个地方有必要进行下细致的分析特别是OOM,言归正传,进入正文。 一、内存溢出(OOM)的原因 在JVM中,有哪些内存区间? 堆溢出 堆溢出 永久区 生成大量的类 public static void 阅读全文

posted @ 2019-01-28 11:08 我是司 阅读(426) 评论(0) 推荐(0)

JVM学习十二:JVM之性能监控工具

摘要: 前面我们学习了很多JVM相关的理论知识,那么本节将重点讲述的是工具的使用,正所谓:工欲善其事,必先利其器。因此,本节介绍常用的性能监控工具,用于性能监控和问题排查。 一、系统性能监控 系统性能工具用于确定系统运行的整体状态,基本定位问题所在。 Linux – uptime • 系统时间 • 运行时间 阅读全文

posted @ 2019-01-28 11:06 我是司 阅读(99) 评论(0) 推荐(0)

JVM学习十一:JVM之深入分析ClassLoader

摘要: 本章节准备写的是对类加载器ClassLoader的剖析,但因为前面已经对类加载器做过一些简单的分析和双亲委派机制的分析;因此本章节的侧重点在于实例演示和自定义加载器。 一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文 阅读全文

posted @ 2019-01-28 11:05 我是司 阅读(206) 评论(0) 推荐(0)

JVM学习十:JVM之垃圾收集器及GC参数

摘要: 一、堆的回顾 新生代中的98%对象都是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是将内存分为一块比较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor。当回收时,将Eden和Survivor中还存活着的对象一次性地复制到另外一块Survi 阅读全文

posted @ 2019-01-28 11:02 我是司 阅读(362) 评论(0) 推荐(0)

JVM学习八:常用JVM配置参数

摘要: 前面学习的都是和类加载相关的知识,接下来学习的则和GC相关的知识,都是JVM的几个重点块。 零、在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。 既然如此,那么在IDE的控制台打印GC日志是必不可少的了。现 阅读全文

posted @ 2019-01-28 11:01 我是司 阅读(225) 评论(0) 推荐(0)

JVM学习九:JVM之GC算法和种类

摘要: 我们前面说到了JVM的常用的配置参数,其中就涉及了GC相关的知识,趁热打铁,我们今天就学习下GC的算法有哪些,种类又有哪些,让我们进一步的认识GC这个神奇的东西,帮助我们解决了C 一直挺头疼的内存回收问题。 一、GC的概念 首先在介绍GC概念之前,我们先知道下为什么GC,然后我们再讲解GC。众所周知 阅读全文

posted @ 2019-01-28 11:01 我是司 阅读(949) 评论(0) 推荐(0)

JVM学习七:JVM之类加载器之类的卸载

摘要: 类加载的过程和原理,以及双亲委派机制都已经讲解完成,那么我们今天讲解类加载的最后一节,那么就是类的卸载。 我们知道,当一个类被加载、连接和初始化之后,他的生命周期就开始了,当该类的class对象不再被引用之后,该类的生命周期也就结束了,之后,该类会被类加载器卸载!我们来看以下代码: 以下代码先通过自 阅读全文

posted @ 2019-01-28 10:58 我是司 阅读(579) 评论(1) 推荐(0)

JVM学习六:JVM之类加载器之双亲委派机制

摘要: 前面我们知道类加载有系统自带的3种加载器,也有自定义的加载器,那么这些加载器之间的关系是什么,已经在加载类的时候,谁去加载呢?这节,我们将进行讲解。 一、双亲委派机制 JVM的ClassLoader采用的是树形结构,除了BootstrapClassLoader以外?每个ClassLoader都会有一 阅读全文

posted @ 2019-01-28 10:57 我是司 阅读(177) 评论(0) 推荐(0)

JVM学习四:JVM之类加载器之初始化分析

摘要: 在经过了前面的加载 和 连接分析之后,这一节我们进入重要的初始化分析过程: 一、认识初始化 初始化:这个似乎与上面的初始化为默认值有点矛盾,我们再看一遍:为累的静态变量赋予正确的初始值,上面是赋予默认值,这里是赋予正确的初始值,什么是正确的初始值,就是用户给赋予的值。我们来看一个例子 我们知道,这个 阅读全文

posted @ 2019-01-28 10:56 我是司 阅读(174) 评论(0) 推荐(0)

JVM学习五:JVM之类加载器之编译常量和主动使用

摘要: 在学习了前面几节的内容后,相信大家已经对JAVA 虚拟机 加载类的过程有了一个认识和了解,那么本节,我们就继续进一步巩固前面所学知识和特殊点。 一、类的初始化回顾 类在初始化的时候,静态变量的声明语句以及静态代码块都被看作类的初始化语句,Java虚拟机会按照初始化语句在类文件中的先后顺序来依次加载它 阅读全文

posted @ 2019-01-28 10:56 我是司 阅读(234) 评论(0) 推荐(0)

JVM学习二:JVM之类加载器之加载分析

摘要: 前面一遍,我们对类的加载有了一个整体的认识,而这一节我们细节分析一下类加载器的第一步,即:加载。 一、概念 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。 加载.c 阅读全文

posted @ 2019-01-28 10:55 我是司 阅读(144) 评论(0) 推荐(0)

JVM学习三:JVM之类加载器之连接分析

摘要: 学习完类加载之加载篇后,让我们继续来看加载之连接,连接分为三个步骤:验证、准备和解析三步,我们将一一分析之。 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去。 类加载完毕之后进入到连接阶段,连接就是将已读入到内存的类的二进制数据合并到虚拟机的运行时环境中去!在连接之前,所有的c 阅读全文

posted @ 2019-01-28 10:55 我是司 阅读(164) 评论(0) 推荐(0)

JVM学习一:JVM之类加载器概况

摘要: 一、Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序。当启动一个Java程序时,一个虚拟机实例诞生;当程序关闭退出,这个虚拟机实例也就随之消亡.如果在同一台计算机上同时运行多个Java程序,将得到多个Java虚拟机实例,每个Java程序都运行于它自己的Ja 阅读全文

posted @ 2019-01-28 10:54 我是司 阅读(125) 评论(0) 推荐(0)

Kafka 温故(五):Kafka的消费编程模型

摘要: Kafka的消费模型分为两种: 1.分区消费模型 2.分组消费模型 一.分区消费模型 二、分组消费模型 Producer : 阅读全文

posted @ 2019-01-28 10:53 我是司 阅读(385) 评论(0) 推荐(0)

Kafka 温故(三):Kafka的内部机制深入(持久化,分布式,通讯协议)

摘要: 一.Kafka的持久化 1.数据持久化: 发现线性的访问磁盘(即:按顺序的访问磁盘),很多时候比随机的内存访问快得多,而且有利于持久化; 传统的使用内存做为磁盘的缓存 Kafka直接将数据写入到日志文件中,以追加的形式写入 2.日志数据持久化特性: 写操作:通过将数据追加到文件中实现 读操作:读的时 阅读全文

posted @ 2019-01-28 10:52 我是司 阅读(279) 评论(0) 推荐(0)

Kafka 温故(四):Kafka的安装

摘要: Step 1: 下载Kafka > tar -xzf kafka_2.9.2-0.8.1.1.tgz> cd kafka_2.9.2-0.8.1.1 Step 2: 启动服务Kafka用到了Zookeeper,所有首先启动Zookper,下面简单的启用一个单实例的Zookkeeper服务。可以在命令 阅读全文

posted @ 2019-01-28 10:52 我是司 阅读(90) 评论(0) 推荐(0)

Kafka 温故(一):Kafka背景及架构介绍

摘要: 一.Kafka简介 Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,使用Scala语言编写,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,多订阅者,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据(实时性的计算)。 在大数据系统中,常常会碰到一 阅读全文

posted @ 2019-01-28 10:51 我是司 阅读(145) 评论(0) 推荐(0)

Kafka 温故(二):Kafka的基本概念和结构

摘要: 一.Kafka中的核心概念 Producer: 特指消息的生产者Consumer :特指消息的消费者Consumer Group :消费者组,可以并行消费Topic中partition的消息Broker:缓存代理,Kafa 集群中的一台或多台服务器统称为 broker。Topic:特指 Kafka 阅读全文

posted @ 2019-01-28 10:51 我是司 阅读(670) 评论(0) 推荐(0)

八、Kafka总结

摘要: 一 Kafka概述 1.1 Kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算。 1)Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。 2)Kafka最初是由LinkedIn开发, 阅读全文

posted @ 2019-01-28 10:50 我是司 阅读(325) 评论(0) 推荐(0)

六、Kafka 用户日志上报实时统计之分析与设计

摘要: 一、项目整体概述 简述项目的背景 背景:用户行迹企业运营 分析项目的目的 通过对项目的分析,可以初步得到以下目的: •实时掌握用户动态 •根据实时统计结果,适度推广 •统计分析效果,快速合理的调整 通过对项目的分析,可以初步得到以下目的: •实时掌握用户动态 •根据实时统计结果,适度推广 •统计分析 阅读全文

posted @ 2019-01-28 10:49 我是司 阅读(501) 评论(0) 推荐(0)

七、Kafka 用户日志上报实时统计之编码实践

摘要: 一、数据生产实现 1.配置数据生产模块 项目基础配置所包含的内容,如下所示: •项目工程的文件配置 •集群连接信息配置 •开发演示 项目基础配置所包含的内容,如下所示: •项目工程的文件配置 •集群连接信息配置 •开发演示 2.实现 Flume 到 Kafka 模块 实现 Flume 到 Kafka 阅读全文

posted @ 2019-01-28 10:49 我是司 阅读(122) 评论(0) 推荐(0)

四、Kafka 核心源码剖析

摘要: 一、Kafka消费者源码介绍 1.分区消费模式源码介绍 分区消费模式直接由客户端(任何高级语言编写)使用Kafka提供的协议向服务器发送RPC请求获取数据,服务器接受到客户端的RPC请求后,将数据构造成RPC响应,返回给客户端,客户端解析相应的RPC响应获取数据。Kafka支持的协议众多,使用比较重 阅读全文

posted @ 2019-01-28 10:48 我是司 阅读(243) 评论(0) 推荐(0)

五、Kafka 用户日志上报实时统计之 应用概述

摘要: 一、kafka 回顾 1.简介 Kafka 的业务 业务场景: 解除耦合 增加冗余 提高可扩展性 Buffering 异步通信 2.介绍 Kafka 的应用场景 Push Message Website Tracking 日志收集中心 3.实时统计平台搭建注意事项 实时统计平台搭建注意事项: HA特 阅读全文

posted @ 2019-01-28 10:48 我是司 阅读(206) 评论(0) 推荐(0)

二、Kafka基础实战:消费者和生产者实例

摘要: 一、Kafka消费者编程模型 1.分区消费模型 分区消费伪代码描述 main() 获取分区的size for index =0 to size create thread(or process) consumer(Index) 第index个线程(进程) consumer(index) 创建到kaf 阅读全文

posted @ 2019-01-28 10:47 我是司 阅读(566) 评论(0) 推荐(0)

三、消息处理过程与集群维护

摘要: 一、Kafka消息组织原理 1.磁盘重认识 当需要从磁盘读取数据时,要确定读的数据在哪个磁道,哪个扇区:首先必须找到柱面,即磁头需要移动对准相应磁道,这个过程叫做寻道,所耗费时间叫做寻道时间;然后目标扇区旋转到磁头下,这个过程耗费的时间叫做旋转时间;一次访盘请求(读/写)完成过程由三个动作组成寻道( 阅读全文

posted @ 2019-01-28 10:47 我是司 阅读(295) 评论(0) 推荐(0)

NIO 的非阻塞式网络通信

摘要: 一、阻塞和非阻塞 传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当 阅读全文

posted @ 2019-01-28 10:44 我是司 阅读(213) 评论(0) 推荐(0)

Path&Paths&Files 学习

摘要: 随着 JDK 7 的发布,Java对NIO进行了极大的扩展,增强了对文件处理和文件系统特性的支持,以至于我们称他们为 NIO.2。因为 NIO 提供的一些功能, NIO已经成为文件处理中越来越重要的部分。 一、Path 与 Paths java.nio.file.Path 接口代表一个平台无关的平台 阅读全文

posted @ 2019-01-28 10:44 我是司 阅读(727) 评论(0) 推荐(0)

通道(Channel)与缓冲区(Buffer)

摘要: Java NIO系统的核心在于:通道(Channel)和缓冲区(Buffer)。通道表示打开到 IO 设备(例如:文件、套接字)的连接。若需要使用 NIO 系统,需要获取用于连接 IO 设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对数据进行处理。简而言之, Channel 负责传输, Buf 阅读全文

posted @ 2019-01-28 10:43 我是司 阅读(3251) 评论(1) 推荐(0)

NIO简介、NIO&IO的主要区别

摘要: 一、NIO简介 1.概述 从JDK1.4开始,Java提供了一系列改进的输入/输出处理的新特性,被统称为NIO(即New I/O)。新增了许多用于处理输入输出的类,这些类都被放在java.nio包及子包下,并且对原java.io包中的很多类进行改写,新增了满足NIO的功能。NIO采用内存映射文件的方 阅读全文

posted @ 2019-01-28 10:36 我是司 阅读(1152) 评论(1) 推荐(1)

文件分割与合并

摘要: package file; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io 阅读全文

posted @ 2019-01-28 10:34 我是司 阅读(133) 评论(0) 推荐(0)

JAVA IO分析二:字节数组流、基本数据&对象类型的数据流、打印流

摘要: 上一节,我们分析了常见的节点流(FileInputStream/FileOutputStream FileReader/FileWrite)和常见的处理流(BufferedInputStream/BufferedOutputStream BufferedReader/BufferedWrite),经 阅读全文

posted @ 2019-01-28 10:30 我是司 阅读(235) 评论(0) 推荐(0)

zookeeper 和 eureka 哪个更好使?

摘要: 0. CAP 理论 在总结两者的区别之前,我们先来看一个 CAP 理论。什么叫 CAP 理论呢?CAP 理论是由 Eric Brewer 教授提出,是分布式系统中的一个重要的概念。CAP 具体如下: C(Consistency):数据一致性。大家都知道,分布式系统中,数据会有副本。由于网络或者机器故 阅读全文

posted @ 2019-01-28 10:07 我是司 阅读(944) 评论(0) 推荐(0)

File 操作

摘要: 在整个io包中,唯一表示与文件本身有关的类就是File类。使用File类可以进行创建或删除文件等常用操作,要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下: File类中的主要方法和常量: 方法或常量 类型 描述 public static final String pa 阅读全文

posted @ 2019-01-28 09:43 我是司 阅读(277) 评论(0) 推荐(0)

字节流与字符流

摘要: 字节流包括输入流InputStream和输出流OutputStream。字符流包括输入流Reader 输出流Write InputStream相关类图如下,只列举了一级子类: InputStream提供了一些read方法供子类继承,用来读取字节。 OutputStream相关类图如下: Output 阅读全文

posted @ 2019-01-28 09:40 我是司 阅读(712) 评论(0) 推荐(0)

文件的读取和写出

摘要: 要读取一个文件,有以下几个步骤: 1.建立与文件的联系:File对象,文件必须存在 2.选择流:按字节流读取,文件输入流 InputStream FileInputStream 3.操作:byte[] car=new byte[1024]+read 4.释放资源,注意jdk1.7后会自动关闭了 In 阅读全文

posted @ 2019-01-28 09:39 我是司 阅读(1016) 评论(0) 推荐(0)

文件的拷贝

摘要: 文件拷贝需要以下几个步骤: 1.建立联系:两个File对象,源头和目的地 2.选择流: 文件输入流:InputStream FileInputStream 文件输出流:OutputStream FileOutputStream 3.操作:拷贝 byte[] car=new byte[1024];+r 阅读全文

posted @ 2019-01-28 09:38 我是司 阅读(735) 评论(0) 推荐(0)

字节流和字符流转换

摘要: 任何数据的持久化和网络传输都是以字节形式进行的,所以字节流和字符流之间必然存在转换问题。字符转字节是编码过程,字节转字符是解码过程。io包中提供了InputStreamReader和OutputStreamWriter用于字符和字节的转换。 来看一个小例子: FileReader类其实就是简单的包装 阅读全文

posted @ 2019-01-28 09:37 我是司 阅读(709) 评论(0) 推荐(0)

纯文本的写出

摘要: 1.建立联系 file对象 2.选择流:writer FileWriter 3.读取while(字符数组,0,长度)+flush 4.关闭资源 之前文件写出的时候,需要把String字符串转化成byte数组,才可以使用writer方法写出, 但是Writer提供了不同的writer方法,可以直接写出 阅读全文

posted @ 2019-01-28 09:36 我是司 阅读(224) 评论(0) 推荐(0)

用字符流进行纯文本的读取和写出

摘要: 纯文本的读取,步骤:1.建立联系 file对象2.选择流: Reader FileReader3.读取:char[] flush=new char[1024];4.关闭资源 思路和读取文件基本是一致的,下面比较一下: 字节流读取文件VS字符流读取纯文本1.使用流不同,前者使用“stream”,后者是 阅读全文

posted @ 2019-01-28 09:35 我是司 阅读(718) 评论(0) 推荐(0)

文件夹的拷贝

摘要: 文件夹用来把文件包裹起来,褪去这些外衣,说到底拷贝文件夹也就是拷贝文件 模拟实例:将F:/Picture/test 文件夹 拷贝到 F:/Picture/dir文件夹 该实例中test文件夹下只包含了test.txt文件 步骤分析: 1.通过路径得到File对象 2.递归查找子孙级文件夹或者文件 3 阅读全文

posted @ 2019-01-28 09:32 我是司 阅读(463) 评论(0) 推荐(0)

导航