java
Amaranth007
奔跑的蜗牛
展开
-
说说java中的那些代码块
java之代码块什么叫代码块?代码块是指使用大括号把多行代码封装在一起,形成一个独立的数据体,实现特定算法的代码集合纪委代码块。简而言之就是使用“{}”括起来的一段代码。一般来说代码块是不能单独运行的,必须要有运行主题。根据位置不同,代码块可以分为四种:普通代码块、构造块、静态代码块、同步代码块 普通代码块 在方法或语句中用{}括起来的代码片段就称为普通代码块。普通代码块和一般的语句执行顺原创 2018-01-11 14:48:22 · 697 阅读 · 0 评论 -
长连接与短连接浅谈
由于项目中用到的http请求接口比较多,而其中遇到了一个问题就是因为长连接和短连接的原因引起,所以关于http协议、长连接与短连接的知识也了解了下。要理解长连接与短连接,首先需要了解一些相关协议及网络基础。 首先让我们看一下BS结构网络传输的分解方式有两种:一种是标准的OSI参考模型,另一种是TCP/IP参考模型。它们的分层方式及对应关系如图: OSI参考模型一共分7层,不过它主要用于教学...原创 2018-03-26 19:10:39 · 832 阅读 · 0 评论 -
Socket和NioSocket浅谈
Socket java中的网络通信是通过Socket实现的,之前说过TCP/IP协议只是一套规则,并不能具体工作,就像程序中的接口一样,而Socket是TCP/IP协议的一个具体的实现。Socket分为ServerSocket和Socket两大类,ServerSocket用于服务端,可以通过方法监听请求,监听到请求后返回Scoket,Socket用于具体完成数据传输,客户端直接使用Socket发...原创 2018-04-22 19:10:31 · 5616 阅读 · 2 评论 -
数据结构——HashMap
HashMap也是比较常用的一个集合,比如ZooKeeper中就用的比较多。而且HashMap也是面试中常被问到,今天就来探讨一下HashMap。HashMap结构从上图可以看出,HashMap底层就是一个数组结构,数组中的每一项又是一个链表。transient Entry<K, V>[] table;public HashMap(int paramInt, f...原创 2018-05-17 12:41:32 · 372 阅读 · 0 评论 -
分布式集群与分布式事务浅谈
分布式、集群、分布式事务相信这几个关键词大家都已经听了无数遍,而这些又是现在互联网不得不提的话题。 那么什么是分布式?什么是集群?什么是分布式事务? 在传统的互联网中,我们通过一个系统业务和存储来完成所有业务。但随着互联网的快速发展传统的架构已经不能满足我们的需求,需要将业务进行拆分处理、或者分库分表来存储业务数据。这时就不得不提到分布式、集群、分布式事务。 分布式:简单来说就是将业务进行拆...原创 2018-05-12 17:39:02 · 2511 阅读 · 0 评论 -
数据结构——ConcurrentHashMap
参考博客:http://www.importnew.com/21781.html原创 2018-05-21 13:22:07 · 8267 阅读 · 3 评论 -
Java的三种代理模式
此文转载,原文链接:https://www.cnblogs.com/cenyu/p/6289209.htmlJava的三种代理模式 1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或...转载 2018-05-08 12:13:30 · 224 阅读 · 0 评论 -
java内存区域详解
java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有区域随着虚拟机的进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。如下图: Java堆对于大多数应用来说,Java堆(Java Heap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动...原创 2018-05-28 18:55:27 · 647 阅读 · 0 评论 -
MyBatis
一直以来在使用MyBatis,但仅仅是一些简单的使用,以前只知道要这么写,不知道为什么要这么写。在看完《深入浅出MyBatis技术原理和实践》后,发现有一些东西豁然开朗,这里就来进行下总结当作复习笔记。MyBatis的基本构成SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生产SqlSessionFactorySqlSessionFactory(工...原创 2018-06-05 12:46:50 · 204 阅读 · 0 评论 -
Java内存模型详解
有些人喜欢把Java内存模型和Java内存区域Java内存区域详解弄混淆,这两个是完全不同的概念。什么是java内存模型Java内存模型:Java内存模型(即Java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式,详细来说就是在虚拟机中将变量存储到...原创 2018-05-29 19:00:32 · 4616 阅读 · 0 评论 -
volatile关键字详解
对于synchronized关键字相信大家都已经不陌生了,synchronized的性能一直以来被各种吐槽(当然java团队一直没有放弃synchronized,一直在为性能的提升努力着,在JDK1.8中CurrentHashMap放弃了ReentrantLock而使用synchronized,可见synchronized性能应该是提升不少的)。而volatile关键字可以说是Java虚拟机提供的...原创 2018-05-29 22:59:58 · 243 阅读 · 0 评论 -
谈谈==、hashCode和equals那些事
相信出去面试的小伙伴们对hashCode和equals这两个方法都不陌生了,接下来我们就来谈谈关于==、hashCode和equals那些事。==和equals()这两个在我们代码中可以说是出场频率非常高的,一般在比较一些基本类型时我们会使用==,而在比较两个对象时一般我们会使用equals。我们都知道Object是Java对象的超类,它里面提供了hashCode和equals,如果我们的...原创 2018-06-05 19:08:23 · 609 阅读 · 0 评论 -
常见协议浅谈
DNS协议DNS协议的作用是将域名解析为IP。我们知道网络上每个站点的位置都是用IP来确定的,所以要想访问一个网站首先就要知道它的IP,不过由数字组成的IP记起来很不方便,所以就设计了比较好的域名来代替IP,这就像我们平时看电视时只需要记着“中央一套”,而不需要去记他们是什么频率,不过实际传输还是需要按频率来传输的,我们在选择了相应的频道后电视就会自动接收相应频率的数据,频道和频率转换过程是电...原创 2018-03-26 17:22:45 · 666 阅读 · 0 评论 -
Eclipse、IntelliJ IDEA远程断点调试
本地断点调试相信大家已经都已经玩的很溜了,但远程断点可能对有些人来说还有点陌生。在实际开发过程中我们可能会有几套不同的环境,比如开发环境、测试环境、生产环境。测试环境我们一般会部署在远程机上,有时我们在开发环境调试正常的代码部署到测试或者生产环境上会有莫名其妙的bug,对于生产环境我们基本上只能通过拉日志分析,分析日志文件并尝试重现bug.这会带来的问题还是不少的.首先,日志的分析是一项比较耗时的...原创 2018-03-30 17:03:19 · 5062 阅读 · 5 评论 -
构造代码块详解
前面我们已经对代码块做了相应的介绍说说java中的那些代码块 ,这篇我们主要针对构造代码块来做详细介绍。 先看一个简单的例子:public class ConstructCodeBlock { { System.out.println("构造代码块1"); } public ConstructCodeBlock(){ System原创 2018-01-11 17:26:58 · 430 阅读 · 0 评论 -
构造函数
java之构造函数一、构造函数的作用主要是在类的对象创建时定义初始化的状态,而一个类可以有多个构造函数,以重载的形式存在。不能使用构造器名称来调用另一个构造器,而是应该使用Java特定的this(….)来调用,this(….)方法必须出现在构造器中的第一行,用来调用其他重载构造器,调用时参数必须严格匹配。这种调用方式的优点在于一个构造器可以不必重复编写其他构造器中已有的代码,而是通过调用其他构原创 2018-01-10 17:24:48 · 377 阅读 · 0 评论 -
java访问权限详解
java总共有四种种访问修饰符,按照权限的大小排名分别是: public(公共的)–>protected(受保护的)–>友好的(默认修饰符)–>private(私有的) 其中友好的是java默认的修饰符,也就是当我们不写任何修饰符时则,默认为友好的。针对类内每个成员的每个定义, Java 访问指示符 public, protected 以及 private 都置于它们的最前面— 无论它们是原创 2018-01-15 15:02:08 · 513 阅读 · 0 评论 -
java之继承详解
我们都知道java三大属性,封装、继承、多态。今天我们来详谈一下继承。 百度上这样说:继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。也就是说继承能够扩展已有的类,达到代码可复用性。继承之名称 继承通过关键字extends来实现,当类A继承了类B,那么我们称A为衍生类或者子类,称B为基类或父类。/** -原创 2018-01-16 09:19:06 · 259 阅读 · 0 评论 -
Java内部类详解
本文摘自–原文链接:http://www.cnblogs.com/dolphin0520/p/3811445.html 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。一. 内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,转载 2018-01-17 14:54:03 · 227 阅读 · 0 评论 -
关于静态static那些事
相信许多初学者甚至是工作了一两年的java程序员,会对static感到迷惑,下面谈谈我对static关键字所了解到的一些知识及个人理解。static(静态)方法或数据的访问java的核心思想是面向对象,即万物皆对象。通常我们创建类时会指出那个类的对象的外观与行为。除非用new创建那个类的一个对象,才会正式生产数据存储空间,并可使用相应的方法。但对于static(静态)关键字来说是特殊的原创 2018-01-09 11:28:25 · 1610 阅读 · 4 评论 -
java关键字abstract(抽象)详解
说到抽象,想必大家第一个联想到的就是抽象画,基本上看不懂画的是啥,只能说它在表达某个概念。 在java中我们中abstract关键字来表达抽象。举个例子: 我们说车子都可以跑(run)。但有几个轮子,怎么跑,对于不同的车有不同的结果。自行车需要人踩着跑,汽车发动机推动跑等等,那么我们可以车表达为抽象类。/** * 车子类 */public abstract class Car {原创 2018-01-18 13:24:21 · 108437 阅读 · 15 评论 -
关于 Java 中 finally 语句块的深度辨析
相信大家在看完这篇文章后基本上对finally的所有疑问都了然于心了,作者剖析的很深入也很详细,所以把他分享给大家。可不能小看这个简单的 finally,看似简单的问题背后,却隐藏了无数的玄机。接下来我就带您一步一步的揭开这个 finally 的神秘面纱。问题分析 首先来问大家一个问题:finally 语句块一定会执行吗?很多人都认为 finally 语句块是肯定要执行的,其中也包括...转载 2018-01-18 15:47:07 · 270 阅读 · 0 评论 -
java关键字final浅谈
上一篇我们提到关键finally,这一篇我们来看看final。这两者区别很大的。 final可以修饰:数据、方法和类final数据 在我们程序设计中,往往会涉及到一些常量, 常量是程序运行时恒定不变的量,许多程序设计语言都有某种方法,向编译器告知一块数据是恒定不变的,例如C++中的const和Java中的final。而常量主要应用下述两个方面: (1)编译期常数,它永远不会改变 (编译时原创 2018-01-19 17:51:15 · 290 阅读 · 0 评论 -
集合应用---集合遍历该如何选择
相信大家在工作中使用集合已经算是家常便饭了吧,而对集合进行遍历也算是必不可少的操作了。而对集合进行遍历也有多种方法,而常用的一般就是for循环和增强for循环(也叫foreach循环)。可能有些人有些迷惑,这两种循环有什么区别呢?我们该如何选择使用呢?用好了系统的性能也能得到一点点的优化哦,接下来就解开神秘的面纱。 先来看一个需求:统计一个省的各科高考平均值,比如数学平均分数。public ...原创 2018-02-27 16:36:15 · 267 阅读 · 0 评论 -
java线程池详解
一:简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是限制系统中执行线程的数量...转载 2018-03-20 12:16:16 · 239 阅读 · 0 评论 -
关于String字符串详解
对于String相信大家已经都很熟悉了,在项目中出场率可以说是最高的。String不属于基本类型但它可以直接进行字面量赋值,如:String s = “adc”。而String字符串在面试题中也是出场率比较高的,当然深入了解String对我们也有一定的好处。需要注意的是在JDK1.6 、JDK1.7、JDK1.8中,由于常量池的从永久代移到堆空间,导致String也有所改变。移除永久代的工...原创 2018-05-30 12:50:41 · 302 阅读 · 0 评论