![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
chou_out_man
学习阶段,欢迎指正错误!
展开
-
一种基于 JEP 和可配置公式实现用户自定义字段的解决方案
一种基于 JEP 和可配置公式实现用户自定义字段的解决方案一、 简介A: 介绍JEP(Java Expression Parser)用于解析和计算表达式,核心功能就是计算公式的解析和结果的计算。在JEP 2.4.1版本之前未符合GPLv3 协议的免费开源包。JEP 支持用户自定义函数、常量、变量,在JEP中已经包含了大量可使用的通用数学公式和常量,可以满足绝大多数的数...原创 2019-03-11 09:56:17 · 1949 阅读 · 0 评论 -
Java集合(八) 迭代器Iterator、泛型、Map映射
一、 迭代器迭代器的增删作用于原集合用迭代器遍历集合 , 用指针的挪动来获取对应的元素,通过标记这个元素是否可以用来操作 去操作原集合。在迭代过程中不允许直接操作原集合。forEach --- 本质上也是做迭代遍历 ,如果一个对象能使用增强for循环,那么这个类必须实现 Iterable。JDK1.5的新特性之一。/* * 迭代器练习 */public class Iter原创 2017-10-11 09:09:48 · 662 阅读 · 0 评论 -
Java 文件操作 File 及 RandomAccessFile
一、 File类概述一个代表文件或目录的类目录 : 只是将一个字符串标记为一个目录 , 路径所占的内存空间大小为0。二、 重要方法创建createNewFile() : 文件不存在时,创建一个文件 , 要求存放这个文件的目录真实存在 ,不能创建目录。mkdri() : 创建目录 mkdris() : 创建多级目录 删除deleted() : 删原创 2017-10-11 14:16:10 · 1096 阅读 · 0 评论 -
JAVA基本数据类型、数据类型转换
JAVA中数据类型一、基本数据类型数值型 整型 byte 字节型 占一个字节 用8位存储数据 范围:-128~127 默认值0short 短整型 占2个字节 2^15 范围:-32768~32767 默认值:0Int 整型 占四个字节 范围:-2^31~2^31-1 从JDK1.7开始,允许数字中间插入_分隔数字,在编译时,自动省略。java 中整数默认为Int,默认值是0.原创 2017-09-01 19:38:02 · 581 阅读 · 0 评论 -
Java常用API(二)String
String --- 代表字符串的类, 是一个最终类,不能被继承,没有子类。字符串是一个常量,定义之后存储在常量池中,定义好之后不可改变,一样字符串是被共享的(同样 的字符串地址相同)。String s1 = "ab" // 在常量池中创建一个"ab"对象,s1 指向"ab"在常量池中的地址String s2 = new Strin("ab"); //此过程产生两个对象 ;原创 2017-09-17 20:26:31 · 386 阅读 · 0 评论 -
Java常用API(一)Object
Object是所有类的顶级父类 ---- 也是java中唯一没有父类的类常用方法摘要:1. clone() 克隆并产生一个新的对象,新对象的地址与原对象地址不同,但属性值 相同。一个类要想被克隆则必须实现Cloneable这个接口,这个接口中没有任何的属性和方法,只是用类标识这个类产生的对象可以被克隆。2. getClass() 获取当前对象的实际类型3. equals(原创 2017-09-14 17:35:58 · 287 阅读 · 0 评论 -
Java面向对象(七)包、内部类、垃圾回收机制
一、包package 包名; ---- 声明import 包名; --- 导包import java.util.*; *是一个通配符,会匹配当前包下所有的类,但不会包括子包下的类java.lang --- 核心类库,一个java程序运行之前会先自动把这个包下所有的类加载到方法区。java.util --- 工具包java.io --- 用于传输数据java.n原创 2017-09-14 17:03:45 · 978 阅读 · 0 评论 -
Java面向对象(六)接口
接口interface声明,接口中所有的方法都是抽象方法(默认public abstract)相当于模本,起到规范的作用。通过implements关键字让接口与类产生关系 --- 实现接口的多态 --- 向上造型。接口不是类,接口中没有构造函数,所以不能创建对象。问:1. 接口中可以定义属性么?解: 可以接口中属性默认用public static final 修饰,原创 2017-09-14 17:02:21 · 199 阅读 · 0 评论 -
Java面向对象(五)abstract --- 抽象
将一些名称一致当但是细节不同的行为提取到父类中,定义为抽象方法,抽象方法所在的类就是抽象类。抽象类不能直接用于创建对象。并且子类在继承抽象类的时候必须实现其中的抽象方法,或者把子类也 定义成一个 抽象类。如果一个类里有抽象方法,那么这个类必须是抽象类。一般类中不能写出现方法。问:1. 抽象类不能创建对象,抽象类有构造函数么?解: 有所有的类都有构造函数。2. 抽象类原创 2017-09-14 16:49:05 · 336 阅读 · 0 评论 -
Java中集合(四)LinkedList
一、概述基于链表内存空间不连续。增删较快,查询首尾特快 ,但是查询其他位置较慢元素可以重复,列表中的元素会被自动编号本身是线程不安全的集合每一个元素都有三部分组成: 头部:存放上一个节点的地址 ,中部:存放数据 ,尾部: 存放下一个节点的地址练习: 自己实现一个LinkedList ,里面存放String类型的值public class LinkedListDemo {原创 2017-09-21 18:20:48 · 201 阅读 · 0 评论 -
Java IO流 、 Properties 、 枚举
一、概述IO流流动的是数据 --- 用于传输数据的API。InputStream\OutputStream --- 输入输出流根据流的传输方向分类 : 当数据从外部流入程序时 : 输入流当数据从程序流向外部时 : 输出流根据流的传输形式分类: 字节流字符流不同形式交汇,得到四种基本操作流的类 , 四个基本流都是抽象类原创 2017-10-11 16:37:59 · 406 阅读 · 0 评论 -
Java中异常机制
一、概述异常是一套用于反馈和处理问题的机制Throwable 是所有异常和错误的顶级父类Throwable派生出两个类Error和Exeption二、Error出现在代码逻辑没有错误,因外界因素或环境因素导致的严重错误的情况。一旦出现,无法修改三、Exception-异常,代表了程序在编译和运行时发生的各种不期望发生的事件。是java异常处理的核原创 2017-09-21 15:04:27 · 203 阅读 · 0 评论 -
Java 静态导入 、可变参数
一、 静态导入 package com.tj.tedu.JDK5Test; import static java.util.Arrays.sort;//静态导入 , 表示只导入sort方法 并且只能导入静态方法 //静态导入 public class Test_01 { public static void main(String[] args) {原创 2017-11-08 20:05:14 · 272 阅读 · 0 评论 -
大数据 NIO
NIO一、基础回顾a 、 进程与线程进程 进程: 程序加载到内存中之后被CPU所计算的过程 — 进程是计算机资源分配 、 任务调度的最小单位三个维度考虑进程: 物理内存维度:每一个进程都要分配一块连续的内存空间(首地址 、 尾地址)进程执行维度/逻辑维度: 每一个进程都能被CPU计算 , 每一个进程都能挂起然后让另外的进程被CPU计算 — 对于单核CPU而言 , 每一个时刻只能计算一个进程原创 2018-02-27 17:39:53 · 304 阅读 · 0 评论 -
Java 利用InetAddress类确定特殊Ip地址
IP地址分为普通地址和特殊地址。在前面的文章中所使用的大多数都是普通的IP地址,在本文中将介绍如何利用InetAddress类提供的十个方法来确定一个IP地址是否是一个特殊的IP地址。 一、isAnyLocalAddress方法 当IP地址是通配符地址时返回true,否则返回false.这个通配符地址对于拥有多个网络接口(如两块网卡)的计算机非常拥有。使用通配符地址可以转载 2018-02-27 17:31:05 · 1290 阅读 · 0 评论 -
Java中的八种锁
Java中的锁java中所得分类 公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁上面这些分类并不全是指所得状态 , 有的指锁的特性 , 有的指锁的设计。一、公平锁/非公平锁公平锁是指多个线程按照申请所得顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序, 有可能后申请锁的线程 , 先获取锁 。 有可原创 2017-11-16 17:24:07 · 1491 阅读 · 0 评论 -
Java 反射机制
一、 概述集群 : 一组完成同一功能的服务器。解耦: 降低两个功能 不同的模块之间的依赖性高内聚,低耦合: 提高模块内的利用率 , 降低模块之间的依赖性 。Class : 一个代表字节码的类 。每个类编译之后都会有相应的字节码 , 所以也叫代表类的类 。 Package : 代表包的类 。 Field : 代表属性的类 。 Method : 代表方法的类 。Constructor原创 2017-11-13 19:06:08 · 190 阅读 · 0 评论 -
Java 套接字Socket
套接字一、概述本质上是一套基于网络传输数据的流实际上是一套用于网络通信的APIIP地址 IPv4是指由4组数组成的IP地址 , 每组数的范围在0~255 。一共有2的32次方个地址(43亿多) IPv6是由六组十六进制的数组成, 每组数的取值范围0~ffff 。 一共有2的96次方的地址 。端口 : 用于和外界进行信息交互的媒介 。 计算机上有65535个端口 , 0~1024已经被系原创 2017-11-12 14:54:09 · 353 阅读 · 0 评论 -
Java初阶知识总结
一、语法部分java技术结构 J2SE : 表示JAVA标准版J2EE : java企业版J2ME : 移动版java跨平台 基于JVMjava是跨平台的 , JVM不是 。 入门程序 每一个java类在编译之后都会产生一个class文件class文件明 与 类名对应javac -d 文件存放路径 要编译的java文件java -cp class文件的存放目录 要运行的原创 2017-10-25 16:52:10 · 331 阅读 · 0 评论 -
Java常用API(三)Pattern 正则表达式
1. 一个用于指定规则的类2. matches(regex)[ ] : 表示一个字符。 [abc] 匹配a\b\c中任意一个字符- : 用于表示范围 。 [a-z] 匹配a~z中任意一个字符^ : 表示过滤。 [^a] 匹配除a意外任意字符. : 表示任意一个字符。 [ .] 匹配任意一个字符 ,若想匹配一个"." 则需要转义,java中用\表示后面的原创 2017-09-21 09:36:09 · 1802 阅读 · 0 评论 -
Java面向对象(二)面向对象的特征 --- 封装 、 继承、 多态
面向对象的特征:封装、继承、多态、(抽象)一、封装体现形式:函数 --- 提高代码的复用性。属性的私有化 --- 将属性设为私有,通过提供对外的访问方法来间接操作对象属性,可以再方法内对属性做一系列的限制使其符合要求 ---- 提高代码的安全性。扩充: 权限修饰符public :本类、子类、同包类、其他类。protected : 本类、子类、同包类。default原创 2017-09-14 10:10:18 · 211 阅读 · 0 评论 -
Java 多线程Thread
重点: java中多线程运行原理掌握两种线程创建方式两种创建线程方式好处和弊端掌握使用Thread类 中获取和设置线程名称的方法使用匿名内部类创建多线程描述java中线程池的运行原理线程安全问题出现的原因使用同步代码块\同步方法解决线程安全问题出现死锁的原因wait方法notify方法线程的五个状态 一、概述进程: 进程是指正在运行的程序。 确切的来说,当一个程序进入内原创 2017-10-12 09:16:22 · 286 阅读 · 0 评论 -
Java 设计模式 --- 单例模式
单例模式一、七种单例模式写法单例模式 : 保证全局过程中只存在一个唯一实例的模式 。 第一种: 饿汉式饿汉式相对于 懒汉式消耗内存的 。代码class Task{ //在定义这个对象的时候并且给值的形式--- 饿汉式 private static Task t = new Task(); //构造函数私有化 private Task() { }原创 2017-11-10 19:13:54 · 152 阅读 · 0 评论 -
Java中集合(三)Stack
一、概述栈先进先出。将元素放入栈中---入栈、压栈 ;将元素从栈中取出 --- 出栈、弹栈。最先放入 栈中的元素--- 栈底元素;最后放入栈中的元素 --- 栈定元素。基于Vactor。(参考:http://blog.csdn.net/chou_out_man/article/details/78053955)。底层是数组。内存空间连续,查询较快,增删较慢。二、方法摘要原创 2017-09-21 16:51:32 · 245 阅读 · 0 评论 -
Java中集合(五)Set
一、概述Set中元素不可重复。Set中方法与Collection中方法基本一致。二、HashSet元素存储时是无序的。 底层: 依据元素的哈希码顺序进行存储。元素不能重复,重复的元素直接舍弃默认初始容量16,加载因子0.75f.(加载因子:容量达到75%时进行扩容)。每次 扩容一倍构造函数中允许指定初始容量和加载因子。比较集合是否相同时,不用关心元素的存储顺序。本身原创 2017-09-21 18:29:42 · 221 阅读 · 0 评论 -
Java中集合(二)Vector
一、 概述基于数组默认初始容量20,每次扩容一倍。内存空间连续。查询较快,增删较慢是一个线程安全的集合。也是java中最早的集合二、方法摘要capacity() ; 获取vactor底层数组的大小elements() : 获取一个枚举对象 Enumeration e = v.elements(); e.hasMoreElemnets() //判断是否有更多的元素原创 2017-09-21 16:43:49 · 240 阅读 · 0 评论 -
Java百文买百鸡
package com.tj.test;/** * (for 循环) * “百钱买百鸡”是我国古代的著名数学题。题目这样描述: 3 文钱可以买1只公鸡,2 文钱可以买一只母鸡,1 文钱可以买3 只小鸡。用100 文钱买100 只鸡,那么各有公鸡、母鸡、小鸡多少只? 公鸡 g 母鸡 m 小鸡 x 3g+2m+1/3x=100 g+m+x=100 2g+m-2/3x=0原创 2017-09-07 14:48:06 · 3154 阅读 · 0 评论 -
Java中三种交换值得方式
方式一: 适用于任意数据类型int i= 3 ,j=4;int temp = 0;temp = i;i = j;j = temp;方式二:只适用于整型数据int i = 3,j = 4;i = i + j;j = i - j;i = i - j; 简化写法: i +=j; j = i - j; i -= j;方式三: 异或运算 ,只适用于原创 2017-09-07 10:57:28 · 478 阅读 · 0 评论 -
JAVA进制及进制之间的转换
进制一、进制二进制: 0、1 满二进一以0b开头作为标识在jdk1.7之前程序中无法直接书写一个二进制数字八进制: 0~7,满8进1要求以0做开头为标识十进制十六进制: 0~9、A~F 满16进1要求以0x开头作为标识二、进制之间的转换十进制转换成二进制:不断地除2取余,然后将余数倒排。二进制转十进制:从低为起,按位次乘以2的位数次幂,然后求和。二进制转八进制:从低位原创 2017-09-01 18:53:35 · 319 阅读 · 0 评论 -
Java简介、安装及一些注意事项
一、Java简介1995年由SUN公司推出的一门高级编程语言,面向互联网的编程语言,是WEB应用程序的首选语言,简单易学,安全可靠,跨平台。1. java为什么能够跨平台?java虚拟机 --- Java Virtual Mechine --- JVM.所有的java程序都是运行在java虚拟机上的,java虚拟机屏蔽了不同操作系统之间的差异性,使得相同的java程序能够在不同的操原创 2017-09-07 09:23:28 · 460 阅读 · 0 评论 -
Java中集合 练习 计算疯狂值
/** * 计算 疯狂值 * 5 10 15 30 70 80 100 * */public class ListExcer { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入这组数的个数:"); int number =原创 2017-09-21 18:52:14 · 1021 阅读 · 0 评论 -
Java中集合(七)Collections 一个操作集合的工具类
public static void main(String[] args) { //asList 以列表的形式操作 List list = Arrays.asList("OC","java","c","c++","Js"); //反转 Collections.reverse(list); System.out.println(list); //升序排序 //如果没有原创 2017-09-21 18:47:26 · 271 阅读 · 0 评论 -
Java中集合(六)Queue
一、概述队列。 先进先出先放入的元素为队头元素。后放入的元素为队尾元素。二、方法摘要原创 2017-09-21 18:37:12 · 202 阅读 · 0 评论 -
Java面向对象(四)final关键字
一、final修饰变量final修饰变量之后变量的直接值不能更改 ---- 常量。final定义的常量在对象创建完成之前允许改变一次值。java中 所说的常量往往是指静态常量 --- 只存储一份arr.length 中length是常量,但不是静态的。二、final修饰方法final修饰方法时表示这个方法是最终方法,该方法不能被重写。final修饰的方法可以被重载。原创 2017-09-14 16:23:20 · 260 阅读 · 0 评论 -
Java面向对象(三)Static
static可以修饰变量、方法、代码块、内部类。一、static修饰变量static修饰 变量后这个变量称之为成员变量或类变量。静态变量随着类的加而加载到方法去中的静态区,并且在静态区中自动赋予初始值。由于静态变量是先于对象存在的,所以静态变量可以 有对象调用,也可由类名调用。由于该类 创建的所有对象存储的是静态属在静态区中的地址,所以晶太属性是被所有对象所共享的原创 2017-09-14 13:22:40 · 424 阅读 · 0 评论 -
Java面向对象(一)面向对象简介和初步 了解
一、面向对象简介面向对象是相对面向过程而言的。面向过程注重的是过程,强调的是动作;面向对象注重的是对象,只要找到了对应的对象,那么就自然拥有了对象所具有的一切功能面向对象是基于面向过程的面向对象一定优于面向过程吗?当场景比较复杂的时候,建议使用面向对象;当事物比较简单的时候,建议使用面向过程二、类 和对象的关系通过对一类事物的共有的特征和行为进行抽取,将原创 2017-09-14 09:16:24 · 304 阅读 · 0 评论 -
Java冒泡排序
package com.tj.test;/*** * 冒泡排序 Bubble sort * 一共比较length-1轮 * 第i轮比较j次,i+j=length。 * */public class Demo_21 { public static void main(String[] args) { int arr[]={1,5,8,6,4,3,2}; for(int原创 2017-09-07 14:50:52 · 146 阅读 · 0 评论 -
Java选择排序
package com.tj.test;/** * 选择排序 * * 第一位依次和后面的元素进行比较交换 一共比较length-1轮 第i轮比较j次,i+j=length j还要控制每次开始比较的下标 * */public class Demo_22 { public static void main(String[] args) { int ar原创 2017-09-07 14:51:59 · 135 阅读 · 0 评论 -
Java二分查找、折半查找
package com.tj.test;/** * 针对有序数组的元素查找 * 折半查找 * */public class Demo_23 { public static void main(String[] args) { int arr[]={0,1,2,3,4,5,6,7,8,9}; int num = 5; int min = 0; int max = arr.原创 2017-09-07 14:54:18 · 210 阅读 · 0 评论 -
Java常用API(六)Date 日期类介绍及使用
一、简单介绍所在包 : java.util.Date。Date d = new Date(); System.out.println(d); // 打印出的内容是: 月份 日期 时间 时区 年份。Date d = new Date(2000,01,1); //打印的实际时间是在1900年01月 01日的00时00分00秒的基础上叠加的。在使用Date类时系统 提示需要加上 Suppres原创 2017-09-21 14:08:03 · 907 阅读 · 0 评论