JavaSE
旧城以西林
这个作者很懒,什么都没留下…
展开
-
Java中的equals和hashCode方法详解
Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法,今天就来介绍一些这两个方法的作用。equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复。这里我们首先要明白一个问题:转载 2017-12-23 14:35:22 · 232 阅读 · 0 评论 -
深入剖析Java中的装箱和拆箱
自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一起看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。以下是本文的目录大纲:什么是装箱?什么是拆箱?装箱和拆箱是如何实现的面试中相关的问题一.什么是装箱?什么是拆箱? 在前面的文章中提到,Java为每种基本数据类型都提供了对应的包装器类型,至于为什么会为转载 2018-01-17 20:10:35 · 157 阅读 · 0 评论 -
多线程编程小案例(一)
1、使用三个线程使得ABC 循环输出十次package ThreadPool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * 使用三个线程使得ABC 循环输出十次 */public class TestABCPool { public static原创 2018-01-25 18:02:11 · 828 阅读 · 0 评论 -
多线程编程小案例(二)
public class Student { private Integer id; private String name; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String g原创 2018-01-25 18:10:39 · 242 阅读 · 0 评论 -
文件移动
package io;import java.io.File;/** * 问题描述: 移动文件 * 注意: * 1 移动后原path下的文件夹将保留 * 2 但文件夹下的文件将不会再存在 * 3 若是目录则要递归调用该方法 * 4 核心是调用File中renameTo()方法 */public class FileTest { p原创 2018-01-30 11:06:13 · 313 阅读 · 0 评论 -
split(" ")与split(" ",-1)的区别
/** 1.如果字符串最后一位有值,则没有区别, 2.如果最后n位都是切割符,split(" ")不会继续切分,split(" ", -1)会继续切分 */public class StringSplit { public static void main(String[] args) { String line = "a b c "; // 1 S原创 2018-03-27 11:16:51 · 22798 阅读 · 2 评论 -
关于时间的工具类
在开发中,我们无可避免的会需要对时间进行操作,下面博主整理了一些关于时间的方法,并封装好,有需要的可以直接使用:import java.sql.Timestamp;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.C原创 2018-02-08 09:22:59 · 205 阅读 · 1 评论 -
关于文件File操作的工具类
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter原创 2018-04-19 16:03:21 · 396 阅读 · 0 评论 -
java读取文件的最后一行数据
Scanner sc=new Scanner(new FileReader("D:\\text.txt"));String line=null;while((sc.hasNextLine()&&(line=sc.nextLine())!=null)){ if(!sc.hasNextLine()) System.out.println(line);}原创 2018-04-25 20:30:36 · 6940 阅读 · 1 评论 -
JAVA中文字符编码问题详解
JAVA中文字符编码问题详解 JAVA的中文字符乱码问题一直很让人头疼。特别是在WEB应用中。网上的分析文章和解决方案都很多,但总是针对某些特定情况的。很多次遇到乱码问题后,经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经掌握了对付这些字符乱码怪兽的诀窍。可当过段时间,换了个应用或换了个环境,又会碰到那讨厌的火星文,并再次无所适从。于是下决心好好整理一下中文字符编码问题,以方便自己记忆...转载 2018-05-11 10:44:51 · 3160 阅读 · 0 评论 -
修改一个已有java项目的编码
修改一个已有java项目的编码(如:GBK转UTF-8)package com.change;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;...转载 2018-06-01 17:55:40 · 2821 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来转载 2018-01-23 14:58:52 · 156 阅读 · 0 评论 -
JavaSE面向对象关键字
一、接口Interface1. 接口中的成员变量默认都是public、static、final类型的,必须被显式初始化2. 接口中的方法默认都是public、abstract类型的。3. 接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。4. 接口没有构造方法,不能被实例化,在接口中定义构造方法是非法的。5. 一个原创 2017-12-15 15:10:42 · 168 阅读 · 0 评论 -
可变长度参数以及foreach循环原理
语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这些语法做一些处理,开发者就可以直接方便地使用了。这些语法糖虽然不会提供实质性的功能改进,但是它们或能提高性能、或能提升语法的严谨性、或能减少编码出错的机会。Java提供给了用户大量的语法糖,比如泛型、自动装箱、自动拆箱、foreach循环、变长参数、内部转载 2017-12-24 15:28:09 · 428 阅读 · 0 评论 -
通过反编译深入理解Java String及intern
一、字符串问题代码段一:1234567891011package com.paddx.test.string;public class StringTest { public static void main(String[] args) { String s转载 2017-12-31 11:04:41 · 184 阅读 · 0 评论 -
反射之属性操作
所使用的实体类:package reflect;//定义一个学生类,作为测试项public class Student { private String id; public int age; String phone; //无参构造方法 public Student(){} //全参构造方法 public Student(String原创 2017-12-30 16:02:01 · 185 阅读 · 0 评论 -
HashMap中put与get的工作原理
一、Put :让我们看下put方法的源码实现:/** * Associates the specified value with the specified key in this map. If the * map previously contained a mapping for the key, the old value is * replaced. *原创 2017-12-27 20:30:57 · 2661 阅读 · 0 评论 -
HashTable、Vector、StringBuffer线程安全的原因
一、HashTable线程安全的原因:put方法是synchronized的所以可以保证其线程安全二、Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),但有些时候,也甭保证,比如:Vector test = Vector();..............for (i = 0; i < test.size(); i++原创 2017-12-31 16:12:04 · 2728 阅读 · 0 评论 -
java.util.Date 与 java.sql.Date的区别
java.util.Date 就是在除了SQL语句的情况下面使用java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分它都有getTime方法返回毫秒数,自然就可以直接构建java.util.Date d = new java.util.Date(sqlDate.getTime());...------------------------------原创 2018-01-01 13:38:54 · 168 阅读 · 0 评论 -
反射之方法
所用实体类:package reflect;//定义一个学生类,作为测试项public class Student { private String id; public int age; String phone; //无参构造方法 public Student(){} //全参构造方法 public Student(String id, int age, Str原创 2017-12-30 16:35:57 · 161 阅读 · 0 评论 -
反射之构造器
所用实体类:package reflect;//定义一个学生类,作为测试项public class Student { private String id; public int age; String phone; //无参构造方法 public Student(){} //全参构造方法 public Student(String id, int age, Str原创 2017-12-30 16:19:17 · 234 阅读 · 0 评论 -
反射之获取类运行时对象方法
// 获取类运行时对象方法一Class student = Student.class;// 方法二//注意此处吃的名字其实是一个字符串,但这个字符串必须是目标类的全路径:包名+类名Class studnet1 = Class.forName("day31reflect.Student"); // 方法三,调用Object的方法Student s = new Student();Cl原创 2017-12-30 16:00:37 · 820 阅读 · 0 评论 -
java的内存模型,JVM内存结构和java对象模型对比
java的内存模型(JMM)参考:https://blog.csdn.net/hollis_chuang/article/details/80880118 JMM是多线程并发的概念,他描述了一组规范,这个规范定义了一个线程对共享变量的写入对另一个线程是可见的 Java的内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程中使用到...转载 2018-12-21 13:05:49 · 247 阅读 · 0 评论