Java基础篇
文章平均质量分 77
Java基础
五彩世界
世人皆苦,所以不要执着于痛苦。
展开
-
BeanUtils使用:从一个map集合中,拷贝到javaBean中(四)
package beanutil;import java.lang.reflect.InvocationTargetException;import java.util.HashMap;import java.util.Map;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanuti...原创 2018-05-11 08:20:07 · 8136 阅读 · 0 评论 -
BeanUtils实现对象拷贝(三)
package beanutil;import java.lang.reflect.InvocationTargetException;import java.util.Date;import org.apache.commons.beanutils.BeanUtils;import entity.Student;/** * 从一个javaBean对象到另一个javaBean对...原创 2018-05-11 08:19:46 · 190 阅读 · 0 评论 -
BeanUtils中的自动类型转换(二)
javabeanpackage entity;import java.util.Date;/** * 一个测试用: * student,javaBean * @author mzy * 一个标准的javaBean: * 1) 属性只要是private修饰的; * 2) 提供setter和getter方法; * 3) 提供无参构造。 * 就行了;有参构造等不...原创 2018-05-11 08:20:02 · 1652 阅读 · 0 评论 -
BeanUtils低依赖属性拷贝测试(一)
javabeanpackage entity;import java.util.Date;/** * 一个测试用: * student,javaBean * @author mzy * 一个标准的javaBean: * 1) 属性只要是private修饰的; * 2) 提供setter和getter方法; * 3) 提供无参构造。 * 就行了;有参构造等不...原创 2018-05-11 08:19:57 · 406 阅读 · 0 评论 -
关于Junit中Assert已经过时
在junit4.12之后,Assert就过时了,提供了TestCase来取代; 同样在TestCase中原本比较常见的一些方法也已经取消了,例如:assertNotEquals、assertThat、assertArraysEquals。自己写了一个MathUtil方法,代码很简单,就不贴了:package a_junit;import org.junit.Test;...原创 2018-05-20 16:56:25 · 14037 阅读 · 1 评论 -
关于String、StringBuffer、StringBuilder
今天在用idea做文件哈希判重为下一个作品做准备的时候,发现一个提示:‘StringBuffer hexValue’ may be declared as ‘StringBuilder’以前只大概区别了String为静态的,StringBuffer是可以变化的,并且线程安全;一些更深的概念咱也不扯了。StringBuilder是不安全的,当时老师教的时候就推荐使用StringBuffer,也怪我当时没有辩证去探索这个问题:线程安全就一定是好的吗?HashTable安全,咱也没怎么用啊;日常还是Ha原创 2020-05-27 14:48:02 · 1422 阅读 · 0 评论 -
关于java中浮点数运算(BigDecimal)
把玩BigDecimal很久之前了,当时做double的加减乘除,出现了问题,发现是精度原因,换了BigDecimal之后也没有细品。结果发现其中的除法运算出了问题(当时测了加减乘以为过了就当是过了),记录一下。其中有一些细节,写在注释中了。package club.mzywucai.blog.decimal_arith_demo.decimal;import org.junit.Test;import java.math.BigDecimal;/** * @author mzywu转载 2020-05-26 16:38:00 · 508 阅读 · 0 评论 -
mzy对于反射的复习
反射其实就是指在超脱规则的束缚,从强引用到弱相关,在上帝视角做事情,对于写配置文件,和一些框架的源码,得到调用上至关重要,java带有解释器的语法特性,高度支持了反射一类的语法糖! 反射其实就是通过获得一个类的Class对象来进行操作,从而得到Constructor(构造方法:包括非共有;private、无类型、protected)对象、Method(方法:包括非共有;private...原创 2018-05-22 20:24:11 · 172 阅读 · 0 评论 -
mzy对于枚举的理解
关于enum,其实就是简化了的class,功能就是提供一个个独立的、特定含义的常量!在JDK5.0之前我们想模拟enum的功能,只能使用自定义类的形式:1.首先私有化构造方法,让外部不能new对象。2.在类内部new多个final的成员变量,让每个成员变量代表特殊含义(可以私有一个带参数的构造方法,提供一个私有属性,对外提供一个get方法)。如下:class Score { private St...原创 2018-05-22 19:32:50 · 173 阅读 · 0 评论 -
关于对String中intern方法的理解
在java的String中有个一直被我们忽视了的方法intern方法:它的官方解释是:一个初始时为空的字符串池,它由类 String 私有地维护。 当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。这里其实就是从堆...原创 2018-05-14 22:56:43 · 221 阅读 · 0 评论 -
回忆java输入输出流,走出误区
input read 将一个XXX读入(input)---从输入流中读取数据的下一个字节(code操作的)。output write 将一个类型的数据写入此流(code操作的)---然后把XXX输出(output)到目的地read(byte[] buf)write(byte[] buf)read和write中都有这种带参的情况,但是作用完全不同;read中的buf是装参数的容器:将input中的字...原创 2018-05-06 18:51:00 · 252 阅读 · 0 评论 -
标准输入输出
标准输入:package system;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/** * java中的System类中的字段:in、out * * 它们代表了系统标准的输入和输出设备。 默认的输入设备是键盘。输出设备是显示器。 Syste...原创 2018-05-18 21:12:18 · 409 阅读 · 0 评论 -
关于SequenceInputStream
两个流合并时:package stream.sequence;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.Inp...原创 2018-05-18 21:12:12 · 4182 阅读 · 0 评论 -
ObjectInputStream和ObjectOutputStream
package stream.object;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;/** * 序列化流:...原创 2018-05-18 21:12:06 · 1018 阅读 · 0 评论 -
DataInputStream和DataOutputStream
package stream.data;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * 操作基本数据类型的流(不...原创 2018-05-18 21:11:59 · 363 阅读 · 0 评论 -
初识反射
类加载器反射动态代理类的加载 当程序要使用某个类时,如果该类还未被加载到内存 中,则系统会通过加载,连接,初始化三步来实现对 这个类进行初始化。 加载 就是指将class文件读入内存,并为之创建一个 Class对象。任何类被使用的时候系统都会建立 一个Class对象。 (类的初始化时机) 1.创建类的实例 2.方法类的静态变量,或者为静态变量赋值 3.调用类的静态方法 4...原创 2018-05-16 21:06:13 · 105 阅读 · 0 评论 -
回忆(四):通过反射获得私有构造实例化得到对象
package reflex;import java.lang.reflect.Constructor;/* * 需求:通过反射获取私有构造方法并使用 * private Person(String name) {} */public class ReflectDemo04_getConstructor_private_newInstance { public static vo...原创 2018-05-16 21:59:40 · 538 阅读 · 0 评论 -
回忆(五):通过反射获取成员变量并使用
package reflex;import java.lang.reflect.Constructor;import java.lang.reflect.Field;public class ReflectDemo05_getFields { /* * 需求:通过反射获取成员变量并使用 * */ public static void main(String[] args...原创 2018-05-16 22:01:25 · 130 阅读 · 0 评论 -
java实现多项式的加减乘除
package polynomial;public class Polynomial { Polynomial next; double data; // 系数值 int power; // 幂值 public Polynomial(){ this(0.0, -1); } public Polynomial(double data, int power){...原创 2017-10-28 12:40:34 · 3893 阅读 · 1 评论 -
关于int和Integer缓存(二):修改缓存大小
续上文:在一些语言中,数据类型的长度是和操作系统有关系的,比如c和c++;但是在java中,java的基础类型长度都是固定的,都是4个字节。因为java不是直接运行在本地操作系统上的,而是运行在JVM上的,JVMJ保证class文件在不同的操作系统上稳定;这也是java跨平台的一点。首先查看我的java version:发现以及是server版的了,是混合模式(关于混合模式理解,可以查看):Int...转载 2018-05-24 17:54:55 · 3239 阅读 · 0 评论 -
反射获得内部类
1.反射调用类方法用invoke即可,但是内部类的话还是需要琢磨一番2.调用invoke方法需要获得参数,即类实例,通过构造函数来获得先写个大小类:/** * Created by garfield on 2016/11/18.S */public class OuterClass { public void print(){ System.out.println("...转载 2018-05-24 17:21:26 · 1978 阅读 · 0 评论 -
关于int和Integer缓存(一):以及设计构想(享元模式)
关于Integer的值缓存:在介绍Integer的值缓存之前,我们需要了解的是,java中的包装类型,我们都知道java中有包装类型int Integerdouble Doublechar Characterboolean Boolean... 为什么要使用包装?包装类型源于java...转载 2018-05-23 22:09:18 · 507 阅读 · 0 评论 -
回忆(三):通过反射得到有参构造实例化得到对象
package reflex;import java.lang.reflect.Constructor;/* * 需求:通过反射,获取该构造方法的使用 * public Person(String name, int age, String address) * * Person p = new Person("mzy", 19, "XXX-xxx-x"); * sysout ...原创 2018-05-16 21:58:35 · 1223 阅读 · 0 评论 -
回忆(二):反射中获得公共方法
package reflex;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;public class ReflectDemo02_getConstructor_public { /* * 获得class对象 就是为了获得其中的: * 1.构造方法 ...原创 2018-05-16 21:51:29 · 271 阅读 · 0 评论 -
回忆(一):反射中获得class对象的三种方法
package reflex;/* * 反射:就是通过class文件对象 去使用该文件中的成员 * 变量,构造方法,成员方法。 * * Person p = new Person(); p.使用 * * 要想这样使用,首先必须得到class文件对象,其实也 * 就是得到Class类的对象。 * Class类: * 成员变量 Field * 构造方法 Co...原创 2018-05-16 21:49:20 · 215 阅读 · 0 评论 -
回忆(六):反射访问私有方法和公有方法
package reflex;import java.lang.reflect.Constructor;import java.lang.reflect.Method;public class ReflectDemo06_getMethods_invoke_parameter_private { /* * * 前面有过构造方法; * 成员变量; * 最后一个:...原创 2018-05-16 22:03:14 · 317 阅读 · 0 评论 -
关于ByteArrayInputStream和ByteArrayOutputStream
package stream.byte_;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;/** * 内存操作流:用于处理临时存储信息的,程序结束,数据就从内存中消失。 * * 字节数组: ByteArrayInputStream...原创 2018-05-18 21:11:51 · 233 阅读 · 0 评论 -
NIO中的File
package nio;import java.io.IOException;import java.nio.charset.Charset;import java.nio.file.Files;import java.nio.file.Paths;import java.util.ArrayList;/** * 以下基于JDK7 NIO提高了IO流的操作效率,但是现在使用的范围...原创 2018-05-18 21:11:44 · 136 阅读 · 0 评论 -
文件拷贝的流实现的几种方式
1.通过BufferedReader和PrintWriter:package print;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;/** * 将本.java文件复制到copy.java中去 数据源: Cop...原创 2018-05-18 21:11:39 · 1044 阅读 · 0 评论 -
毕向东讲解(摘)—9.单例设计模式的回顾
懒汉式相比于饿汉式的优点就是延迟加载,但是如果在多线程中的话,懒汉式容易出问题,如果要考虑多线程的安全性,并且稍微提高一下懒汉式的速率,最好的办法就是使用双重判断的方式,不过即使懒汉式在多线程中可以使用双重判断来解决,然而也不如饿汉式在多线程中的优势,所以一般在多线程中我们选用饿汉式进行单例。 package day6;/** * 单例设计模式 * * @author转载 2017-10-12 16:47:32 · 233 阅读 · 0 评论 -
毕向东讲解(摘)—6.多线程安全问题(同步函数)
package day6;/** * 需求: * 现在有一个bank * 有两个cus往银行中存钱 * 实现银行中金额的增加 * * @authormzy * * 同步函数 */publicclassTest{ publicstaticvoidmain(String[]args){ Cuscus=newCus();转载 2017-10-12 16:44:18 · 134 阅读 · 0 评论 -
毕向东讲解(摘)—5.多线程的安全问题(同步代码块)
Java对于多线程的安全问题提供了专业的解决方式。就是同步代码块:Synchronized(对象){ 需要被同步的代码;} 对象如同锁,持有锁的线程可以在同步中执行。没有持有锁的线程即使获取cpu的执行权,也进不去,因为没有获取锁。 最经典的例子:火车上的卫生间。(对于多条操作共享数据的语句,只能让一个线程都执行完,在执行过程中,其它线程不可以参与转载 2017-10-12 16:42:46 · 162 阅读 · 0 评论 -
毕向东讲解(摘)—线程售票重复bug
没加锁变量 同时被几个线程修改了操作共享变量的时候 需要同步synchronized 或者Lock方法 关于static的一个bug:package day4;/** * 售票的第一种方式:可以将100张票分到四个线程窗口售卖 * 但是如果是一个线程对象被创建,但是start();了四次的话 * 程序就会报异常,告诉你xx线程已经被start了,不用重复开启原创 2017-10-12 16:38:43 · 345 阅读 · 0 评论 -
毕向东讲解(摘)—1.多线程概述
进程:是一个正在执行中的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中的一个独立的控制单元。线程就是在控制着进程的执行。 一个进程中至少有一个线程。 Java VM 启动的时候会有一个进程 java.exe 该进程中至少有一个线程负责java程序的执行。而且这个线程运行的代码存在于main方法中。转载 2017-10-12 16:27:12 · 281 阅读 · 0 评论 -
java实现链表
package list.link;/** * 节点类 * * @author mzy * */public class Node { Node next; int data; /** * 无参构造,调用单参数的有参构造 */ public Node() { this(0); } /** * * @param...原创 2017-10-28 12:38:07 · 183 阅读 · 0 评论 -
list、Vector、迭代器和Stack
关于listArrayList(基于动态数组的数据结构)ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。在API中ArrayList有三种构造方法:第三种构造一个具有指定容量的空列表:当你初始化为一个具体的数字的时候,你通过size方法查看依旧为0 size为0 index为0后来在网上查了之后发现这里的capacity指的是分配的...原创 2017-10-09 21:04:25 · 1121 阅读 · 0 评论 -
java异常拓展
java中的常见异常,http://blog.csdn.net/taijianyu/article/details/11634881原创 2017-10-09 20:52:18 · 455 阅读 · 0 评论 -
java中的异常是什么?
推荐:http://blog.csdn.net/hguisu/article/details/6155636原创 2017-10-09 20:32:39 · 20296 阅读 · 0 评论 -
java GUI 实现简单计算器
package calclutor;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends JFrame { // 这一句的作用是什么? private static final long serialVersionUID = -104729原创 2017-10-31 15:01:16 · 15258 阅读 · 6 评论 -
关于RandomAccess
package special;import java.io.IOException;import java.io.RandomAccessFile;/** * 随机访问流: * * 此类不属于任何一个输入流和输出流 * 直接继承自Object实现的类 * 可以对文件随机的进行读和写! * @author mzy * * * JDK: * 此类的实例支持对随机访问文...原创 2018-05-18 21:11:35 · 563 阅读 · 0 评论