java
苍山如海z
从头越,苍山如海,残阳如血
展开
-
Java 日期与时间
package com.zx.ds.date;//日期与时间import java.text.NumberFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;import java.util.TimeZone;public class TestDate { public static void main.原创 2020-08-05 22:04:33 · 230 阅读 · 0 评论 -
使用循环单链表解决约瑟夫问题
Josephu问题为:设编号为1,2,...n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。这里用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除算法结束。以1,2,3,4,原创 2020-07-30 15:48:24 · 1396 阅读 · 0 评论 -
数据结构与算法分析 二叉查找树
二叉查找树:对于树中的每个节点X.它的左子树中所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项。1. contains方法 private boolean contains(AnyType x,BinaryNode<AnyType> t){ if(t==null){ return false; } int compareResult=x.compareTo(t.element);原创 2020-07-18 22:22:30 · 142 阅读 · 0 评论 -
Java 位操作符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13public static void main(String[] args) { int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */ int c = 0;原创 2020-07-17 09:10:40 · 107 阅读 · 0 评论 -
Java8 新特性(Lambda ,Stream API等)
1. Lambda表达式2. 函数式接口3. 方法引用与构造器引用4. Stream API5. 接口中的默认方法与静态方法6. 新时间日期API7. 其他特性原创 2020-06-16 19:14:02 · 125 阅读 · 0 评论 -
java中的Character和char的区别
Character是char的包装类,就像Integer和int ,以及Long和long一样。Character是char的包装类,注意它是一个类,提供了很多方法的。包装类和基本类型可以自动转换,这是jdk1.5(5.0)的新特性,叫做自动封箱和自动解封。char ch='a';Character ch1=ch;//自动封箱Character c=new Character('a');char c1=c;//自动解封int t=10;Integer t1=t;//自动封箱原创 2020-06-01 10:34:16 · 920 阅读 · 0 评论 -
Java中从控制台输入数据的几种常用方法
一、使用标准输入串System.in //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字 //System.in.read()返回一个整数 //必须初始化 int read=0; System.out.println("输入数据:"); //5 try{ read=System.in.read();原创 2020-06-01 10:14:27 · 929 阅读 · 0 评论 -
java中==和equals()的区别
==号和equals()方法都是比较是否相等的方法,那它们有什么区别和联系呢?首先,==号在比较基本数据类型时比较的是值,而用==号比较两个对象时比较的是两个对象的地址值。 int x=6; int y=6; String s1=new String("aaa"); String s2=new String("aaa"); System.out.println(x==y); //true S原创 2020-05-30 21:57:57 · 153 阅读 · 0 评论 -
Java 集合
1. Java 集合简介在Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象称为集合。很显然,Java的数组可以看作是一种集合。既然Java提供了数组这种数据类型,可以充当集合,那么,我们为什么还需要其他集合类?这是因为数组有如下限制:数组初始化后大小不可变; 数组只能按索引顺序存取。因此,我们需要各种不同类型的集合类来处理不同的数据,例如:可变大小的顺序链表; 保证无重复元素的集合; ...1.1 Collectio原创 2020-05-30 16:07:40 · 785 阅读 · 0 评论 -
Java 反射
反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息。反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法。1. Class类除了int等基本类型外,Java的其他类型全部都是class(包括interface)。而class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类型时,将其加载进内存。每加载一种class,JVM就为其创建一个Class类型的实例,并关联起来。注意:这里的Class类型是一个名叫Class的c原创 2020-05-24 16:09:28 · 150 阅读 · 0 评论 -
Java StringBuilder StringJoiner
Java编译器对String做了特殊处理,使得我们可以直接用+拼接字符串。虽然可以直接拼接字符串,但是,在循环中,每次循环都会创建新的字符串对象,然后扔掉旧的字符串。这样,绝大部分字符串都是临时对象,不但浪费内存,还会影响GC效率。为了能高效拼接字符串,Java标准库提供了StringBuilder,它是一个可变对象,可以预分配缓冲区,这样,往StringBuilder中新增字符时,不会创建新的临时对象package com.learn.string;//StringBuilder相关原创 2020-05-24 14:09:10 · 240 阅读 · 0 评论 -
Java String
package com.learn.string;import com.sun.org.apache.xpath.internal.operations.Bool;import java.util.Arrays;public class TestString { public static void main(String[] args) { /* * String是一个引用类型,本身也是一个class, * 但是Java编译器对St.原创 2020-05-24 10:20:55 · 274 阅读 · 0 评论 -
Java 注解
注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释”注释会被编译器直接忽略,注解则可以被编译器打包进入class文件,因此,注解是一种用作标注的“元数据”。目录1. 注解的作用2. 定义注解3. 处理注解4. 使用注解1. 注解的作用从JVM的角度看,注解本身对代码逻辑没有任何影响,如何使用注解完全由工具决定。Java的注解可以分为三类:第一类是由编译器使用的注解,例如:@Override:让编译器检查该方法是否正确地实现了覆写; @Suppress原创 2020-05-23 21:31:53 · 267 阅读 · 0 评论 -
Java 集合源码
Java集合源码剖析1.Java集合框架Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 Java集合类的整体框架如下: 从上图中可以看出,集合类主要分为两大类:Collection和Map。 Collect...原创 2020-05-23 16:19:39 · 194 阅读 · 0 评论 -
Java Jackon序列化和反序列化
JSON是JavaScript Object Notation的缩写,它去除了所有JavaScript执行代码,只保留JavaScript的对象格式。JSON作为数据传输的格式,有几个显著的优点:JSON只允许使用UTF-8编码,不存在编码问题; JSON只允许使用双引号作为key,特殊字符用\转义,格式简单; 浏览器内置JSON支持,如果把数据用JSON发送给浏览器,可以用JavaScript直接处理。因此,JSON适合表示层次结构,因为它格式简单,仅支持以下几种数据类型:键值对:{"k原创 2020-05-23 15:03:46 · 548 阅读 · 0 评论 -
消息中间件RabbitMQ相关2
RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。目录1.RabbitMQ 核心概念MessagePublisherExchangeQueueBindingConnectionChannelConsumerVirtual HostBroker2.RabbitMQ 运行机制AMQP中的消息路由Exchange 类型DirectExchangeFantout Ex..原创 2020-05-20 22:37:27 · 445 阅读 · 0 评论 -
JMS&AQMP 相关
1.大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力 异步处理、应用解耦、流量削峰2.消息服务中两个重要概念:消息代理(message broker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。3.消息队列主要有两种形式的目的地1.队列(queue):点对点消息通信(point-to-point) 2.主题(topic):发布(publish)/订阅(subscribe)消息通信4.点对点式:-消..原创 2020-05-20 22:03:08 · 218 阅读 · 0 评论 -
Java网络编程 UDP
和TCP编程相比,UDP编程就简单得多,因为UDP没有创建连接,数据包也是一次收发一个,所以没有流的概念。在Java中使用UDP编程,仍然需要使用Socket,因为应用程序在使用UDP时必须指定网络接口(IP)和端口号。注意:UDP端口和TCP端口虽然都使用0~65535,但他们是两套独立的端口,即一个应用程序用TCP占用了端口1234,不影响另一个应用程序用UDP占用端口1234。在服务器端,使用UDP也需要监听指定的端口。Java提供了DatagramSocket来实现这个功能。服务器端原创 2020-05-16 17:11:33 · 207 阅读 · 0 评论 -
Java网络编程 TCP
Socket是一个抽象概念,一个应用程序通过一个Socket来建立一个远程连接,而Socket内部通过TCP/IP协议把数据传输到网络:Socket、TCP和部分IP的功能都是由操作系统提供的,不同的编程语言只是提供了对操作系统调用的简单的封装。例如,Java提供的几个Socket相关的类就封装了操作系统提供的接口。为什么需要Socket进行网络通信?因为仅仅通过IP地址进行通信是不够的,同一台计算机同一时间会运行多个网络应用程序,例如浏览器、QQ、邮件客户端等。当操作系统接收到一个数据包的时候原创 2020-05-16 16:59:47 · 309 阅读 · 0 评论 -
消息中间件RabbitMQ相关
1.RabbitMQ安装rabbitMQ 是基于 erlang 语言开发的使用 rabbitMQ 需要安装 erlang环境安装 erlang环境,配置erl路径otp_win64_18.1.exe 就是 erlang的安装程序使用默认设置安装完毕之后,会在如图所示的路径看到 erl.exe 文件,它就相当于 jdk里的 java.exe。 这就说明安装好了。运行测试,安装成功按默认设置安装RabbitMQrabbitmq的插件配置"C:\Progr...原创 2020-05-12 21:02:52 · 138 阅读 · 0 评论 -
消息中间件ActiveMQ相关
消息中间件有很多种,ActiveMQ 是用 Java 语言开发的消息中间件1.ActiveMQ 安装服务端使用apache-activemq-5.15.8-bin.rar下载好了之后,运行32或者64位操作系统对应的 activemq.bat 就启动了。1.启动成功界面2.访问地址启动成功之后, 访问地址http://127.0.0.1:8161/就可以看到如图所示的界面。这就是服务器的管理界面,在里面就可以看到都有哪些消息被创建了,哪些被消费了。3.管理界面..原创 2020-05-12 14:43:16 · 109 阅读 · 0 评论 -
JVM虚拟机相关
目录1.虚拟机与Java虚拟机2.JVM的位置3.JVM的整体结构4.Java代码执行流程5.区分栈的指令集和寄存器指令集架构6.JVM的生命周期1.虚拟机与Java虚拟机Jvm 字节码 :java语言编译成的字节码Java语言虚拟机 à 多语言虚拟机Java hotspot virtual machine --->java 的默认虚拟机Jvm 跨语言的平台 scala 、groovy、clojure2006 java开源并建立了Open..原创 2020-05-12 14:23:53 · 204 阅读 · 0 评论