计算机网络基础,考验一个程序员的基本功,也能更快的筛选出更优秀的人才. 说说TCP的三次握手 假设发送端为客户端,接收端为服务端.开始时客户端和服务端的状态都是CLOSED. 第一次握手:客户端向服务端发起建立连接请求,客户端会随机生成一个起始序列号x,客户端向服务端发送的字段中包含标志位SYN=1,序列号seq=x.第一次握手前客户端的状态为CLOSE,第一次握手后客户端的状态为SYN-SENT.此时服务端的状态为LISTEN. 第二次握手:服务端在收到客户端发来的报文后,会随机生成一个服务端…
什么是MySQL MySQL是一个关系型数据库,它采用表的形式来存储数据.你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列).行代表每一行数据,列代表该行中的每个值.列上的值是有数据类型的,比如:整数.字符串.日期等等. 数据库的三大范式 第一范式1NF 确保数据库表字段的原子性.最全面的Java面试网站 比如字段 userInfo: 广东省 10086' ,依照第一范式必须拆分成 userInfo: 广东省 userTel: 10086两个字段. 第二范式2NF 首先要…
Redis连环40问,绝对够全! Redis是什么? Redis(Remote Dictionary Server)是一个使用 C 语言编写的,高性能非关系型的键值对数据库.与传统数据库不同的是,Redis 的数据是存在内存中的,所以读写速度非常快,被广泛应用于缓存方向.Redis可以将数据写入磁盘中,保证了数据的安全不丢失,而且Redis的操作是原子性的.最全面的Java面试网站 Redis优缺点? 优点: 基于内存操作,内存读写速度快. 支持多种数据类型,包括String.Hash.List…
一. 前言部分 从享受生活的角度上来说:“程序员并不是一种最好的职业,我认为两种人可以做程序员,第一,你不做程序员,你就没有什么工作可做,或者说是即使有可以做的工作但是你非常不愿意去做:第二,你非常痴迷和爱好程序,并且在这方面有一些天赋和优势.程序员的结局也是有两种:第一,默默退休,第二以程序员为起点或跳板,注意积累,跟对了好的老板或团队,找到和很好的搭档自己创业,成为IT金领和富翁.” 人们在时间面前是平等的,吾生也有涯,所以,你的经验更丰富点,那不算什么,经验是用时间积累的,你一生只有那么多…
构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种过程化的方式进行配置,所以维护起来相当困难. Gradle:Gradle采用增量构建.Gradle通过Groovy编程而不是传统的XML声明进行配置.Gradle可以很好地配合Maven进行依赖管理,并且把Ant脚本当作头等公民. 字节码操作 编程操作Java字节码的函数库. ASM:通用底层字节码操作及…
一:相关概念 1.面向对象的三个特征 封装,继承,多态,这个应该是人人皆知,有时候也会加上抽象. 2.多态的好处 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性.简单的说:就是用基类的引用指向子类的对象. 为什么要用多态呢? 原因:我们知道,封装可以隐藏实现细节,使得代码模块化:继承可以扩展已存在的代码模块(类):它们的目的都是为了——代码重用.而多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性..耦合度讲的是模块模块之间,代码代码之间的关联…
下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们有所帮助. 1.下列说法正确的是() (程序结构) A java程序的main方法必须写在类甩面 B java程序中可以有多个main方法 C.java程序中类名必须与文件名一样 D.JAVA程序的main方法中如果只有一条语句,可以不用{}括起来 2.java中,在如卜所示的Test类中,共有()…
目录 零.NIO包 一.Java NIO Channel通道 Channel的实现(Channel Implementations) Channel的基础示例(Basic Channel Example) 二.Java NIO Buffer缓冲区 Buffer基本用法(Basic Buffer Usage) Buffer的容量,位置,上限(Buffer Capacity, Position and Limit) 容量(Capacity) 位置(Position) 上限(Limit) Buffer…
1.创建线程 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread构造函数: public Thread( ); public Thread(Runnable target); public Thread(String name); public Thread(Runnable target, S…
最近,由于一个项目的原因需要使用一些随机数据做测试,于是写了一个随机数据生成工具,ExtraRanom.可以看成是Java官方Random类的扩展,主要用于主要用于测试程序.生成密码.设计抽奖程序等情况下.目前已经实现的功能包括: 随机英文输出(自定义大小写,自定义固定长度还是随机长度): 随机数字输出(自定义固定长度还是随机长度): 随机ASCII字符,随机扩展ASCII字符,随机可打印ASCII字符输出: 随机中文输出(自定义固定长度还是随机长度): 随机Eamil地址输出: 随机手机号码输…