
javaSE
文章平均质量分 78
IT_驿站
请大家多多关注!!
展开
-
Java之学习笔记(前言)
重点内容# 欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用原创 2016-07-29 14:18:02 · 453 阅读 · 1 评论 -
什么时候使用接口?什么时候使用抽象?选择Java接口还是抽象类
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按照接口编程了,只不过如果你原创 2016-08-01 17:13:38 · 1315 阅读 · 0 评论 -
Session和Cookie的作用和区别
一、cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 同时我们也看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。二、会话cookie和持久cookie的区别原创 2016-08-01 17:29:31 · 534 阅读 · 0 评论 -
java面试题
1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称原创 2016-08-01 20:47:48 · 291 阅读 · 0 评论 -
解惑rJava R与Java的高速通道
R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。要成为有理想的极客,我们不能转载 2016-08-09 08:58:24 · 463 阅读 · 0 评论 -
java多线程详细总结
一、Thread.start()与Thread.run()的区别通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行。然后通过此Thread类调用方法run()来完成其运行操作的,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程终止,而CPU再运行其它线程。而如果直接用Run方法,这只是调用一个方法而已,原创 2016-08-09 09:01:55 · 395 阅读 · 0 评论 -
Java NIO Socket VS 标准IO Socket
简介 Java NIO从JDK1.4引入,它提供了与标准IO完全不同的工作方式。NIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题。 1、 Buffer:它是包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的I/O操作。 2、 Charset:它提供Unicode字符串影射到字节序列以及逆影原创 2016-09-13 08:31:13 · 292 阅读 · 0 评论 -
Java集合框架
Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 Java集合类的整体框架如下: 从上图中可以看出,集合类主要分为两大类:C原创 2016-08-12 09:44:51 · 269 阅读 · 0 评论 -
ArrayList源码剖析
ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的Cop原创 2016-08-12 09:46:08 · 230 阅读 · 0 评论 -
LinkedList源码剖析
LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。 LinkedList同样是非线程安全的,只在单线程下适合使用。 LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。原创 2016-08-12 09:47:58 · 261 阅读 · 0 评论 -
工行网银B2c第三方接口开发
最近做网络商城的一个网银支付接口,可算给我焦死了,各种规则啊,总体来说比较麻烦,也不算难,只要搞清楚流程就好了。下面理清一下思路来说一下;需要准备一些什么?首先要带上银行卡和身份证去当地分行申请开发B2c第三方网银接口。然后当地银行会给你一个.pfx的文件。这其实就是一个加密的证书,然后你点击安装,输入你申请的公文阴匙,会把.pfx文件,拆分成.crt和.key的文件。这些文件的用转载 2016-09-14 17:14:42 · 1414 阅读 · 0 评论 -
Java多线程的用法详解
1.创建线程 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。Thread构造函数:public Thread( ); public Thread(Runnable target);原创 2016-09-14 17:20:04 · 544 阅读 · 0 评论 -
Java反射机制初涉
一、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。 二、哪里用到反射机制 有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码, Class.forName("c原创 2016-09-14 17:21:33 · 625 阅读 · 0 评论 -
观察者模式
一、基本定义 何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新。 在这里,发生改变的对象称之为观察目标,而被通知的对象称之为观察者。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,所以么可以根据需要增加和删除观察者,使得系统更易于扩展。 观察者模式又原创 2016-09-29 13:23:11 · 417 阅读 · 0 评论 -
Java内存区域与内存溢出
内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存储的数据类型。 程序计数器(Program Counter Register) 一块较小的内存空间,它原创 2016-11-22 10:41:03 · 396 阅读 · 0 评论 -
MQ选型对比RabbitMQ RocketMQ ActiveMQ Kafka
MQ选型对比文档综合选择RabbitMq转载 2018-10-24 13:53:06 · 245 阅读 · 0 评论 -
Java抽象类(abstract)和接口(interface)的区别
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很原创 2016-08-01 17:10:51 · 569 阅读 · 0 评论 -
Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
两个月之前准备软考时,简单的从理论上总结了最常用的数据结构和算法,比如:线性表,链表,图。在进行java开发时,jdk为我们提供了一系列相应的类来实现基本的数据结构。jdk所提供的容器API位于java.util包内。本文主要是通过简单的介绍Collection集合,向读者简单阐述各个类的基本定义以及其作用,为后面的学习做一下铺垫。首先,我们先看一下Collection集合的基本结构:原创 2016-08-01 17:07:36 · 500 阅读 · 0 评论 -
Java线程池架构原理和源码解析(ThreadPoolExecutor)
在前面介绍JUC的文章中,提到了关于线程池Execotors的创建介绍,在文章:《java之JUC系列-外部Tools》中第一部分有详细的说明,请参阅;文章中其实说明了外部的使用方式,但是没有说内部是如何实现的,为了加深对实现的理解,在使用中可以放心,我们这里将做源码解析以及反馈到原理上,Executors工具可以创建普通的线程池以及schedule调度任务的调度池,其实两者实现上还是有一原创 2016-08-01 16:46:53 · 339 阅读 · 0 评论 -
Java的开发准备及环境配置
Java简介: 它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。原创 2016-07-29 15:39:37 · 1319 阅读 · 0 评论 -
Java运行机制及JVM
理论篇:Java程序运行机制:Java语言是一种特殊的高级语言,既有解释性语言的特征,也有编译语言的特征,Java程序经过先编译后翻译两个步骤。计算机高级语言按程序的执行方式分为编译型和解释型两种。计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器。解释性语言:解释性语言编写的程序不进行预先编译原创 2016-07-29 15:06:28 · 636 阅读 · 0 评论 -
Java:万年历打印输出
public static void main(String[] args) { { System.out.println("*请输入年份*"); int[] c=new int[3]; int[][] month={{31,28,31},{30,31,30},{31,3原创 2016-07-29 17:06:46 · 582 阅读 · 0 评论 -
java、Collection接口集合和泛型<T>
1 什么叫集合 通常情况下,把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合。2 集合与数组的区别 从存储的数据类型来看:可以定义基本类型的数组,用来存储基本类型数据。也可以定义引用类型的数组,存储引用类型的数据;集合只能存储引用类型,而不能存储基本类型。 从长度来看:数组一旦定义后,其长度就不能改变;集合的长度会自动变化。3 集合的功能原创 2016-07-30 08:51:50 · 8157 阅读 · 0 评论 -
Java集合List和Set的原理
集合是一种可以存储对象的容器,当然这个容器也是一个对象。和数组相比,集合的优势在于他的长度是可以变化,另外集合可以存储多个类型的对象,而数组的长度是固定的,只能存储一个类型的元素;但是集合不能存储基本数据类型,而数组却可以。 所有的集合类都是Collection接口的子类。实现Collection中定义的集合共有功能。其中包括:public boolean a原创 2016-07-30 11:51:33 · 10619 阅读 · 0 评论 -
Java集合List,Set,Map基础
java中集合类位于java.util包下,与下面四个接口有关Collection,List,Set,Map接口。Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接原创 2016-07-31 08:54:55 · 356 阅读 · 0 评论 -
Java集合Map接口与Map.Entry学习
Java集合Map接口学习Map接口用于存储元素对(键和值)Map接口中的方法 equals(Object o) hashCode clear() remove(Object key) put(Object key,Object value) putAll(Map t) entrySe原创 2016-07-31 08:56:55 · 266 阅读 · 0 评论 -
Java集合HashSet-ArrayList-HashMap的线程同步控制方法和区别
Collections类中提供了多个synchronizedXxx,该方法返回指定集合对象对应的同步对象,从而可以解决多线程并发访问集合时的线程安全问题. 正如Java中常用的集合框架推荐使用的三个实现类:HashSet\ArrayList\HashMap都是线程不安全的.如果有多条线程访问它们,而且有超过一条的线程试图修改它们,则可能出现错务.Collections提供了多个静态方法用于转载 2016-07-31 08:58:46 · 2699 阅读 · 0 评论 -
Java 字节流InputStream、OutputStream、FileInputStream、FileOutputStream
InputStream 和OutputStream第一种方式:使用字节输出流建立一个文件并存储一些数据FileOutputStream fos = new FileOutputStream("fos.txt");fos.write("abcdsjfl".getBytes()); //getBytes()将字符串转化成字节存储到byte数组中fos.close(); /原创 2016-07-31 09:00:39 · 985 阅读 · 0 评论 -
Java_io体系之BufferedWriter、BufferedReader简介、源码示例
一:BufferedWriter1、类功能简介: BufferedWriter、缓存字符输出流、他的功能是为传入的底层字符输出流提供缓存功能、同样当使用底层字符输出流向目的地中写入字符或者字符数组时、每写入一次就要打开一次到目的地的连接、这样频繁的访问不断效率底下、也有可能会对存储介质造成一定的破坏、比如当我们向磁盘中不断的写入字节时、夸张一点原创 2016-07-31 09:02:42 · 549 阅读 · 0 评论 -
Java语言基础(关键字、标识符、注释、常量、变量、运算符)
Java语言基础组成:关键字、标识符、注释、常量和变量、运算符、语句、函数、数组一. 关键字【注】关键字的所有的字母都是小写 1. 用于定义数据类型的关键字基本数据类型数值型整数:byte(字节) short(短整型) int (整型) long(长整型)浮点数: float(单精度浮点数) double(双精度浮原创 2016-07-31 11:12:33 · 931 阅读 · 1 评论 -
Java——static修饰符、final修饰符、abstract修饰符、接口
一、static修饰符static修饰符可以修饰变量、方法或代码块用static修饰的变量叫静态变量。静态变量有如下注意事项:类中的静态变量属于类,而不属于某个特定的对象。类的静态成员可以与类的名称一起使用,而无须创建类的对象。(可以直接通过类名来访问静态变量,建议使用类名来调用静态变量)静态变量或方法也称为类的变量或方法。不管创建了类的多少实例,整个类中静原创 2016-07-31 11:15:16 · 312 阅读 · 0 评论 -
关于java基本数据类型中的枚举
用法一:常量 在JDK1.5之前,我们定义常量都是:publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW}用法二:switchJDK1.6之前的switch语句只支持int,char,enum类型,使原创 2016-07-31 11:17:30 · 1114 阅读 · 0 评论 -
java基本数据类型与字符串之间的转换(基本数据类型、对象封装类、自动装箱、自动拆箱)
1 基本数据类型与对象包装类对应关系基本数据类型对象包装类byteByteshortShortint Integerlong LongbooleanBooleanfloat Floatdoub原创 2016-07-31 11:19:22 · 306 阅读 · 0 评论 -
java对redis的基本操作
一、server端安装 1、下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位win7系统对应的版本: 2、安装 1)解压后将里面所有文件拷贝至redis安装目录:原创 2016-08-04 10:18:36 · 277 阅读 · 0 评论 -
Java线程池技术
ThreadPool线程池线程池技术是用来管理线程使用,提高线程复用,以达到降低程序对系统开销、提高程序性能的作用。线程池API类简介java.util.concurrent.ThreadPoolExecutor 构造方法: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTi原创 2016-08-01 16:45:01 · 243 阅读 · 0 评论 -
分布式架构核心RPC原理
在应用的迭代演进过程中,随着系统访问量提高,业务复杂度提高,代码复杂度提高,应用逐渐从单体式架构向面向服务的分布式架构转变。RPC(Remote Procedure Call Protocol远程过程调用)是分布式架构的核心,按响应方式分如下两种:同步调用:客户端调用服务方方法,等待直到服务方返回结果或者超时,再继续自己的操作异步调用:客户端把消息发送给中间件,不再等待服务端返回,直接继续...转载 2018-10-24 13:56:04 · 359 阅读 · 0 评论