java、网络等基础
文章平均质量分 66
基础为王
不能飞的肥燕
10多年IT经验,5年多阿里巴巴和百度等的工作经验,互联网相关技术娴熟扎实。
展开
-
Map & ConcurrentHashMap
某卖课公司的老师发我的提纲,与其花钱听课,不如自己整理一下。 HashMap底层存储原理详解 hashmap底层是以数组方式进行存储。将key-value对作为数组中的一个元素进行存储。 key-value都是Map.Entry中的属性。其中将key的值进行hash之后进行存储,即每一个key都是计算hash值,然后再存储。每一个Hash值对应一个数组下标,数组下标是根据hash值和数组长度计算得来。 由于不能的key有可能hash值相同,即该位置的数组中的元原创 2021-03-03 14:14:47 · 560 阅读 · 0 评论 -
go get 超时
将下面两个设置添加到系统的环境变量中GOPROXY=https://goproxy.io原创 2021-02-19 18:02:59 · 815 阅读 · 0 评论 -
聊聊 Java8 以后各个版本的新特性
作者:ZY5A59juejin.im/post/5d5950806fb9a06b0a277412某天在网上闲逛,突然看到有篇介绍 Java 11 新特性的文章,顿时心里一惊,毕竟我对于 Java 的版本认识还停留在 Java 8 上,而日常使用的语法和 API 还停留在 Java 7 上。于是抽时间看了看 Java 8 以后各个版本的特性,做了一个总结。文章概览JDKJDK 全称 Java Development Kit,是 Java 开发环境。我们通常所说的 JDK 指的是 J.转载 2021-02-08 17:21:23 · 1279 阅读 · 1 评论 -
我读过的最好的epoll讲解--转自”知乎“
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,但是服务器还没有把数据传回来),这时候该怎么办?阻塞:阻塞是个什么概念呢?比如某个时候你在等快递...原创 2020-06-08 10:57:34 · 205 阅读 · 0 评论 -
分析 HTTPS 原理以及在 Android 中的使用
导读本文首先分析HTTP协议在安全性上的不足,进而阐述HTTPS实现安全通信的关键技术点和原理。然后通过抓包分析HTTPS协议的握手以及通信过程。最后总结一下自己在开发过程中遇到的HTTPS相关的问题,并给出当前项目中对HTTPS问题的系统解决方案,以供总结和分享。1.HTTP协议的不足HTTP1.x在传输数据时,所有传输的内容都是明文,客户端和服务器端都无法验证对转载 2017-12-19 13:18:43 · 415 阅读 · 0 评论 -
一些常用软件的网络端口协议分类介绍
各种软件网络端口的分类: 即时通讯类: 1、腾讯QQ通讯协议及端口范围 QQ 默认采用UDP 通讯方式,端口8000,8001。如果UDP 的两个端口不通,会自动转换到TCP 80端口或者TCP 443端口进行通讯。QQ 同时也支持HTTP 代理模式及SOCK5 代理模式。 2、MSN通讯协议及端口范围 MSN(Live)messenger 采用TC转载 2015-04-17 11:08:14 · 1561 阅读 · 0 评论 -
高性能IO设计的Reactor和Proactor模式
<br /><br />在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。<br /> <br /> 在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪,而异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到I转载 2011-05-12 11:35:00 · 625 阅读 · 0 评论 -
Java NIO原理和使用
Java NIO原理和使用转载 2010-11-23 16:44:00 · 568 阅读 · 0 评论 -
Java NIO类库Selector机制解析(下)
五、 迷惑不解 : 为什么要自己消耗资源? 令人不解的是为什么我们的Java的New I/O要设计成这个样子?如果说老的I/O不能多路复用,如下图所示,要开N多的线程去挨个侦听每一个Channel (文件描述符) ,如果这样做很费资源,且效率不高的话。那为什么在新的I/O机制依然需要自己连接自己,而且,还是重复连接,消耗双倍的资源? 通过WEB搜索引擎没有找到为什么。只看到N多的人在原创 2009-06-15 15:47:00 · 803 阅读 · 0 评论 -
Java NIO类库Selector机制解析(上)
一、 前言 自从J2SE 1.4版本以来,JDK发布了全新的I/O类库,简称NIO,其不但引入了全新的高效的I/O机制,同时,也引入了多路复用的异步模式。NIO的包中主要包含了这样几种抽象数据类型: Buffer:包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的I/O操作。 Charset:它提供Unicode字符串影射到字节序列以及逆映射的操作。 Chann转载 2009-06-15 15:43:00 · 543 阅读 · 0 评论 -
JAVA中使用FTPClient上传下载
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件、下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件。 一、上传文件 原理就不介绍了,大家直接看代码吧view plaincopy to clipboardprint?/** * Descrip转载 2008-07-31 16:06:00 · 547 阅读 · 0 评论 -
java.io.InvalidClassException: local class incompatible: stream classdes
Re: ava.io.InvalidClassException: local class incompatible: stream classdes Feb 29, 2008 2:25 AM (reply 15 of 19) My Java version is the 1.5.0_14 and the value -3126翻译 2008-04-21 15:18:00 · 6318 阅读 · 0 评论 -
J2SE中的序列化之接受默认序列化
首先要了解java默认的序列化行为,java将一切关于对象的信息都保存了下了,也就是说,有些时候那些不需要保存的也被保存了下来。一般情况下,我们仅仅需要保存逻辑数据就可以了。不需要保存的数据我们可以用关键字transient标出。 以下是一个例子: import java.io.*; public class Serial implements Serializable {转载 2008-04-21 15:04:00 · 615 阅读 · 0 评论 -
Serializable兼容性问题及serialVersionUID的使用
兼容性问题 兼容性历来是复杂而麻烦的问题。 不要兼容性: 首先来看看如果我们的目的是不要兼容性,应该注意哪些。不要兼容性的场合很多,比如war3每当版本升级就不能够读取以前的replays。 兼容也就是版本控制,java通过一个名为UID(stream unique identifier)来控制,这个UID是隐式的,它通过类名,方法名等诸多因素经过计算而转载 2008-04-21 15:00:00 · 1486 阅读 · 0 评论 -
Java 8 简明教程
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。 本文由 ImportNew网站的黄小非 翻译自 winterbe。原文作者Benjamin是Pondus软件公司的总工程师,原文内容如下。 引用Java并没有没落,人们很快就会发现这一点转载 2014-11-18 18:20:12 · 505 阅读 · 0 评论 -
JAX-RPC 1.1中的Java/XML数据类型映射
级别: 初级陈亚强 (cyqcims@mail.tsinghua.edu.cn), 高级软件工程师, 北京华园天一科技有限公司2003 年 12 月 01 日本文将讨论JAX-RPC1.1中JAVA编程语言的数据类型与XML Schema数据类型之间的映射,并且提供具体的映射实例。本文是J2EE Web服务开发系列文章的第十篇,本文将讨论JAX-RPC1.1中JAVA编程语言的转载 2008-04-23 21:17:00 · 1919 阅读 · 0 评论 -
Castor进行XML数据绑定时的一点问题
2007-08-01 15:56Castor XML is an XML databinding framework. Unlike the two main XML APIs, DOM (Document Object Model) and SAX (Simple API for XML) which deal with the structure of an XML doc转载 2008-04-17 21:08:00 · 1140 阅读 · 0 评论 -
Castor的XML数据绑定应用
2006年12月04日 星期一 12:00板桥里人 http://www.jdon.com 2002/07/27Java与.net最大不同之处在于,Java是在开放源代码领域中成长的,所以,你不必苦苦等待某一个公司的产品开发进度,在开源领域,每天都诞生有关Java令人激动的新技术,你可以仔细研究它,可能是昙花一现,更可能是一种全新技术的发现,这种心情已经让你忘记了自己孤独的境遇转载 2008-04-17 21:07:00 · 546 阅读 · 0 评论 -
成为JavaGC专家Part I — 深入浅出Java垃圾回收机制
对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模应用的开发经验。如果你曾经想过如何正确的选择GC算法,那意味着你已经完全理解你所开发的应用的特点。当转载 2014-06-11 17:59:28 · 509 阅读 · 0 评论 -
(转)FULL GC分析过程分享
http://www.taobaotest.com/blogs/2294 在性能测试过程中,FULL GC频繁是比较常见的问题,FULL GC 产生的原因有很多,这里主要针对meta压测过程中分析FULL GC问题的一些思路进行分享,供大家参考 1.如何发现是否发生FULL GC和FULL GC是否频繁 使用JDK自带的轻量级小工具jstat 语法结构: Usage:转载 2014-06-11 17:52:18 · 757 阅读 · 0 评论 -
JVM必备指南
本文由 ImportNew - xiafei 翻译自 anturis。欢迎加入翻译小组。转载请见文末要求。简介Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来定义的一个虚拟的计算机,被设计用来解释执行从Java源码编译而来的字节码。更通俗地说,JVM是指对这个规范的具体实现。这种实现基于严格的指令集和全面的内存模型。另外,JVM也通常被形容为对转载 2016-05-10 13:57:52 · 298 阅读 · 0 评论 -
聊聊JVM的年轻代
1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收转载 2014-06-11 17:50:15 · 524 阅读 · 0 评论 -
使用Castor XML
使用Castor XML2006年12月04日 星期一 12:02备注:Jakarta ORO: 一套文本处理工具,提供JDK5.0兼容的正则表达式,Awk-like正则表达式,glob表达式Xerces:Apache推动的一项XML文档解析开源项目,有多种语言版本。Java、C++、PerlSVN:Sub Version 一种版本管理工具JPA:Jav转载 2008-04-17 21:05:00 · 766 阅读 · 0 评论 -
XML 与 Java 技术: 用 Castor 进行数据绑定
XML 与 Java 技术: 用 Castor 进行数据绑定使用开放源代码项目 Cator 进行 Java 的 XML 数据绑定级别: 中级Dennis M. Sosnoski (dms@sosnoski.com), 总裁, Sosnoski Software Solutions, Inc.2003 年 12 月 01 日对于主要关心文档转载 2008-04-17 21:04:00 · 1068 阅读 · 0 评论 -
Java开发者的十大戒律
有许多标准和实践准则可适用于Java开发者,但此处要说的,是每个Java开发者需坚守的基本原则。 一、为代码加注释。虽然每个人都知道这点,但有时却不自觉忘了履行,今天你“忘了”加注释了吗?虽然注释对 程序的功能没什么“贡献”,但过一段时间,比如说两星期之后或者更长,回过头来看看自己的代码,说不定已经记不住它是干什么的了。如果这些代码是你个人 的,那还算是走运了,不幸的是,当然了,大多数时候都转载 2007-11-26 13:05:00 · 551 阅读 · 0 评论 -
JVM server client参数使用
从JDK5开始,java在启动的时候 ,已经可以是判断当前系统是否是一个Server,从而决定是使用server 的jvm还是client的jvm。当然了,如果你强制指定了-server 或者-client就按照指定的运行,否则,系统会自动判断。如果没有指定,那么默认的行为如下:PlatformDefault VMArchitec原创 2017-07-27 10:08:14 · 3585 阅读 · 0 评论 -
java码农技术体系总结
最近朋友转做hr,负责招聘java相关职位。也算是复习吧,整理了一下作为java码农需要掌握或者相关的技术。xmind脑图:原创 2017-06-24 14:23:13 · 499 阅读 · 0 评论 -
Java Concurrency / Multithreading Tutorial
Back in the old days a computer had a single CPU, and was only capable of executing a single program at a time. Later came multitasking which meant that computers could execute multiple programs (AKA转载 2016-05-10 13:52:36 · 516 阅读 · 0 评论 -
深入JDK源码之Observer接口和Observable类实现观察者模式
原文出处: 陶邦仁何为观察者模式观察者模式(有时又被称为发布/订阅模式)是软体设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来事件处理系统。使用它有何好处观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为转载 2016-05-10 11:54:12 · 812 阅读 · 0 评论 -
Java高级:动态绑定实现机制
原文出处: 陶邦仁Java虚拟机调用一个类方法时,它会基于对象引用的类型(通常在编译时可知)来选择所调用的方法。相反,当虚拟机调用一个实例方法时,它会基于对象实际的类型(只能在运行时得知)来选择所调用的方法,这就是动态绑定,是多态的一种。动态绑定为解决实际的业务问题提供了很大的灵活性,是一种非常优美的机制。1. Java对象模型Java虚拟机规范并没有规定Java对象在堆里转载 2016-05-10 11:53:22 · 299 阅读 · 0 评论 -
java入门
Day 1 搭建java开发环境,并行打印hello world 按照yyyy-mm-dd 的格式输出当前日期Day 2 正序倒序打印久久表(for\while) 通过控制台输入一组数字,当输入e,则结束。用数字保存输入的数字,并 对输入的数字,通过冒泡算法,按照从小到大排序,然后打印。 用集合,如List保存数据,并排序。 利用Collection原创 2016-02-18 17:13:13 · 308 阅读 · 0 评论 -
为什么选择 Java 8 ?
【编者按】本文是 DZone 指南 Java 生态系统的专题文章,作者Trisha Gee是Java资深工程师和布道者。在本文中,Trisha Gee阐述了Java 8的重要特性以及使用的原因,由OneAPM工程师翻译。以下为译文要点速递在很多情况下,Java8 都能提升应用性能,而无需任何改变或性能调优。Lambda 表达式、 Streams API 以及现有转载 2015-11-05 09:45:18 · 455 阅读 · 0 评论 -
Java Concurrency的系列文章
http://tutorials.jenkov.com/java-concurrency/index.html原创 2015-04-21 16:12:40 · 489 阅读 · 0 评论 -
Java callback-JAVA实现回调
<br /> <br />所谓回调,就是客户程序C调用服务程序S中的某个函数SA,然后S又在某个时候反过来调用C中的某个函数CB,对于C来说,这个CB便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用CB,C提供CB的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的CB姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用CB函数,这个过程称为回调函数的注册,R称为注册函数。Web Service以及Jav转载 2011-05-04 11:38:00 · 1857 阅读 · 1 评论 -
关于java乱码的一些总结
<br /><br />Java乱码是因为Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。在这里,总结一下java乱码的一些常见情况<br /> <br />1.Javascript传参乱码:<br />在浏览器端对要传递的中文参数进行编码处理.代码如下: <br />xmlhttp.open("POST",url,true); //请求参数初始化 <br />xmlhttp.setRequestHeader(转载 2011-02-21 10:21:00 · 825 阅读 · 0 评论 -
ThreadLocal 介绍
早在Java 1.2推出之时,Java平台中就引入了一个新的支持:java.lang.ThreadLocal,给我们在编写多线程程序时提供了一种新的选择。使用这个工具类可以很简洁地编写出优美的多线程程序,虽然ThreadLocal非常有用,但是似乎现在了解它、使用它的朋友还不多。 ThreadLocal是什么 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实转载 2009-05-15 12:53:00 · 448 阅读 · 0 评论 -
Java关键字final、static使用总结
Java关键字final、static使用总结一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类转载 2008-06-17 14:52:00 · 487 阅读 · 0 评论 -
java经典题目
1.列举出 10个JAVA语言的优势a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用2.列举出JAVA中10个面向对象编程的术语a:包,类,接口,对象,属性,方法,构造器,继承,封装,多态,抽象,范型3.列举出JAVA中6个比较常用的包Java.lang;java.util;java原创 2021-01-07 13:45:31 · 670 阅读 · 0 评论 -
构建用于正则表达式的抽象 Java API
背景知识 在我的经验中,大多数 Java 开发人员都需要解析某种文本。通常,这意味着他们最初要花一些时间使用象 indexOf 或 substring 那样的与 Java 字符串相关的函数或方法,并且希望输入格式永远不变。但是,如果输入格式改变,那么用于读取新格式的代码维护起来就会变得转载 2008-06-17 15:11:00 · 595 阅读 · 0 评论 -
if 语句不使用代码块引起的问题
代码如下: public class Test { public static void main(String[] args) { if (true) Test tt = new Test();// TestPrintStream1 cannot be resolved } } if () 后面不使用花括原创 2008-08-27 11:27:00 · 765 阅读 · 0 评论