![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
BigData_Hubert
never say never
展开
-
Java中XML的四种解析方式
XML解析简介XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。针对以下XML文件,会对四种方式进行详细描述:<?xml version="1.0原创 2020-10-26 09:56:12 · 336 阅读 · 0 评论 -
Java NIO(Channel、Buffer、Selector)总结
Java IO系列Java IO 基础Java IO 高级Java NIOJava NIOJava IO系列0. 概述1.Java NIO2.ChannelChannel到Channel的数据传输transferFrom()transferTo()3.BufferBuffer的基本使用Buffer的 capacity, position 和limitBuffer常用方法1.申请一个Buffer2.写入数据到buffer中3.flip()写切换到读4.从buffer中读取数据5.倒回rewind(转载 2020-10-23 10:20:03 · 783 阅读 · 0 评论 -
Java IO 高级特性总结
Java IO系列Java IO 基础Java IO 高级Java NIOJava IO 高级Java IO系列序列化与反序列化定义java API实例serialVersionUID的作用Properties类读取定义Java API实例序列化与反序列化定义把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。对象与字节序列(流)之间的相互转换流通,就构成了Java 的序列化与反序列化。对象的序列化主要有两种用途:1. 把对象的字节序列永久地保存到原创 2020-10-22 09:41:27 · 801 阅读 · 0 评论 -
Java 正则表达式详解
正则表达式乍一看上去是一堆繁琐的、无规律的、令人头大的字符串,但是其简单易学,适用于各种语言;当你了解他之后,你就会知道它的强大。很多程序设计语言都支持用正则表达式来进行字符串的操作。正则表达式简介初识正则表达式正则表达式是使用单个字符串来描述、匹配一系列规则的字符串。正则表达式并不仅限于某一种语言(几乎所有的语言都有字符串),在每种语言中有细微的差别。一个正则表达式字符串:^p[a-zA-Z_].+@.+\\..+$ 正则表达式应用还是很多的,总结的来说,包括匹配、分割、替换、截取这四大作用原创 2020-10-20 10:54:56 · 737 阅读 · 0 评论 -
Java IO基础详解
Java IO系列Java IO基础Java IO高级Java NIOJava IO基础Java IO系列写在前面IO 初识什么是流?流的三大特性目录和文件操作流的分类输入流与输出流节点流和处理流字节流与字符流IO流方法实例演示FileInputStream、FileOutputStream(字节流)InputStreamReader、OutputStreamWriter(字符流)FileWriter、FileReader(字符流便捷类)BufferedInputStream、BufferedO原创 2020-10-02 17:20:42 · 1906 阅读 · 0 评论 -
两个小例子轻松搞懂 java 中递归与尾递归的优化
废话不多说,我们直接上两个最常见的小例子:一、递归,伪递归,迭代实现n!package com.njbdqn.test02;/** * 递归,伪递归,迭代实现n! */public class RecursionTest { public static void main(String[] args) { System.out.println(recurse(5)); //递归显示 System.out.println(camouflageRecurse原创 2020-09-13 21:37:07 · 425 阅读 · 0 评论 -
java创建多线程的方法
java 中创建线程的方法主要有四种方式,下面我简述这四种方法。匿名内部类创建对象,重写run()方法package part11;import java.util.concurrent.TimeUnit;public class Demo { public static void main(String[] args) { new Thread(){ @Override public void run() {原创 2020-06-13 20:35:43 · 325 阅读 · 0 评论 -
简述冒泡排序
初学编程的小白来说,当学到数组和循环后,我们都会接触到排序算法的概念。排序算法常用的有10种,下面我就简单的描述一下冒泡排序这种简单容易理解的算法。冒泡排序属于比较算法,是稳定的算法,选择算法是不稳定的算法。冒泡排序是一种极其简单的排序算法,它重复地遍历过要排序的数组元素,依次比较相邻两个元素,如果他们的顺序(从小到大或者从大到小)错误就把他们调换过来,直到遍历到最后一个元素且没有元素再需要交换,排序完成。这个算法操作起来,越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端,像气泡一样按大小的气泡一个原创 2020-05-23 16:54:03 · 1587 阅读 · 0 评论 -
再谈java基础
java基础总结java概述java是什么JDK、JRE和JVM三者的关系一个java程序的执行过程java基础语法java概述java是什么java是一种面向对象的编程语言java语法具有简单易学,强类型机制,面向对象(封装、继承和多态),平台无关性(jvm跨平台),多线程并发,支持网络编程和安全健壮等特点。java是一种平台java虚拟机JVM实行跨平台,JVM一处执行,处处执行的特点是java编程语言的核心所在。不同的平台或者操作系统,只要安装了相应的虚拟机,或者说安装了不同的虚拟机,原创 2020-08-04 23:08:42 · 1201 阅读 · 0 评论 -
一个小小的String类型等值比较引起的“==”、“equals()”和“hashCode”思考?
关于String类型的等值比较和内容比较,是学习java甚至任何编程语言所共同的常见问题,理解String类型的等值比较和内容比较也是面试经常问到的问题。字符串等值比较public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private原创 2020-06-03 21:46:32 · 3274 阅读 · 1 评论 -
数组为空、数组长度为0和数组首元素为空值的区别
首先,要清楚一点数组为空、数组长度为0和数组首元素为空值是三个完全不同的概念。下面我以代码为例来详细介绍一下它们的定义和区别。代码public class Test { public static void main(String[] args) { //s0不为空,但它指向空值,长度为0,系统开辟了内存,但内存中没有放任何东西,所以其长度为0,但数组不为空(已经开辟内存了),值却是空值 String[] s0 = {}; //s1不为空,长原创 2020-05-27 20:52:29 · 4470 阅读 · 1 评论 -
java中同类对象之间的compareTo()和compare()方法的比较
首先我们都知道java中的比较都是同一类对象与对象之间的比较,就好像现实生活中比较人和人的年龄一样,你不会去把人的年龄和人的身高来比较,这显然是没有意义的。java中同类对象之间的比较又分为两种,基本类型之间的比较和引用类型之间的比较。java中“==”比较对象是否引用了同一个对象,或者比较基本类型变量值是否相等。Object类的equals()方法用来比较是否一个对象(内存地址比较),可以重写。JDK中有些类重写了equals()方法,只要类型、内容都相同,就认为相等。很变态的Boolean类,仅存在原创 2020-06-10 21:24:34 · 1154 阅读 · 0 评论 -
java oop面向对象
对于初学java OPP的小白来说,抽象类、接口和父类三者之间的关系是非常重要的,也是java面试中经常问到的面试点。对于抽象类、接口 、父类的定义详见https://www.runoob.com/java/java-tutorial.html这里我就不做解释了,下面我简单的阐述一下抽象类、接口 、父类三者的关系。抽象类和接口抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。举个简单的例子,飞机和鸟是不同类原创 2020-05-30 19:07:17 · 556 阅读 · 0 评论 -
求10000以内所有的质数
首先,要清楚质数(素数)的概念。质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。其次根据质数的定义,我们可以总结以下几种算法去计算10000以内所有的质数:算法一:判断该数i去能否被2到i的1/2之间任意的数整除,能--->不是质数;不能--->是质数public static void main(String[] args) { //算原创 2020-05-20 21:59:34 · 4316 阅读 · 0 评论 -
从Java中的栈和堆,进而衍生到值传递
简述Java中的栈和堆,变量和对象的地址存放和绑定机制初学java的小白,很多人都搞不清楚java中堆和栈的概念,我们都知道计算机只能识别二进制字节码文件,如果分不清楚对象和变量在内存的地址分配,也就是堆和栈的问题,很多问题比如绑定机制、静态方法、实例方法、局部变量的作用域就会搞不清楚。首先记住结论:基本数据类型、局部变量、String类型的直接赋值都是存放在栈内存中的,用完就消失。new创建的实例化对象、String类型的构造方法new出来的对象及数组,是存放在堆内存中的,用完之后靠垃圾回原创 2020-05-16 17:10:40 · 716 阅读 · 0 评论 -
简述java中JDK、JRE和JVM的之间的关系
初学java平台,很容易搞不清楚java中的一些概念。以下简述一下本人对JDK、JRE和JVM的之间的关系:概念JDK(Java Development Kit)简单理解就是Java开发工具包,是java的核心所在;JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机。JDK是面向开发者的,JRE是面向使用JAVA程序的用户,JVM是java实现跨平台和系统的媒介所在。上面只是一个概念上简单的区原创 2020-05-13 15:01:55 · 6441 阅读 · 2 评论