
Java
Java基础
星辰鸿溟
你必须很努力,才能看起来毫不费力。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java IO - 读写文件的所有操作方式
参考:读文件写文件import org.junit.Test;import java.io.*;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.util.stream.Stream;public class IODem原创 2021-06-02 18:04:16 · 146 阅读 · 0 评论 -
JAVA字符串格式化-String.format()的使用
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Locale locale, String format, Object... args)使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。显示不同转载 2021-01-24 14:57:15 · 334 阅读 · 1 评论 -
Java中的System.getenv()和System.getProperty()
System.getenv()和System.getProperty()是Java种常用的两种读取环境配置信息的方法,它们都是java.lang.System类的方法,用途有相似之处,但我们在实际使用中,需要更加注意二者的区别。1. System.getenv()System.getenv()读取的是当前系统环境的环境变量。要深入理解环境变量的本质,需要对系统父子进程关系有更加清晰的认识。一般来说,子进程在创建时,会将父进程当时的环境变量复制一份,而父进程中之后发生的环境变量的变动,不会影响子进程中对应原创 2021-01-16 15:40:18 · 12705 阅读 · 2 评论 -
Java继承关系中,子父类的静态代码块、代码块、构造器的执行顺序
突然对子父类的静态代码块、代码块、构造器的执行顺序有点疑惑,想不起来了,赶紧测一把,记录下父类public class StaticClassParent { static { System.out.println("StaticClassParent static 代码块..............."); } { System.out.println("StaticClassParent 代码块..................");原创 2021-01-06 10:49:21 · 513 阅读 · 0 评论 -
Java 类加载机制
????双亲委派模型从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;另 一种就是所有其他的类加载器,这些类加载器都由Java语言实现,独立于虚拟机外部,并且全都继承自抽象类java.lang.ClassLoader。从开发人员的角度来看,类加载器还可划分的更细致些,绝...原创 2019-10-24 14:22:05 · 120 阅读 · 0 评论 -
Java 中的日志及日志框架
记录应用系统的日志主要有三个原因:记录操作轨迹、监控系统 运行状况、回溯系统故障。日志规范为降低沟通和学习成本,应用中的扩展日志命名方式应该有统一的约定,通过命名能直观明了的地表名当前日志文件是什么功能。推荐的日志文件的命名:appName_logType_logName.log其中 logType 为日志类型,推荐 分类有 stats、monitor、visit等logName 为日...原创 2019-12-20 18:01:25 · 302 阅读 · 0 评论 -
两道关于类加载中准备与初始化的经典题
Java代码public class PrepareOrInit { public static void main(String[] args) { Singleton singleton = Singleton.getInstance(); System.out.println(singleton.count1); System.out.println(singleton.co...原创 2019-11-19 09:08:44 · 257 阅读 · 0 评论 -
Java 中 Overload 和 Override 的区别。
OverloadOverload是重载,本质是静态分派,根据静态类型为判定依据,发生在编译期。在java中的体现为:同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同。重载时应注意:在使用重载时只能通过不同的参数样式。方法的异常类型和数目不会对重载造成影响。OverrideOverride是重写,本质是动态分配,根据实际类型为判定依据,发生在运行时。在java中的...原创 2019-11-17 17:27:02 · 492 阅读 · 0 评论 -
列出一些你常见的运行时异常?
ArithmeticException(算术异常)ClassCastException (类转换异常)IllegalArgumentException (非法参数异常)IndexOutOfBoundsException (下标越界异常)NullPointerException (空指针异常)SecurityException (安全异常)ArrayStoreException(数据存...原创 2019-11-17 17:05:06 · 841 阅读 · 0 评论 -
Java中Socket编程
客户端package com.minghai.net;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/* * TCP通信的客户端:向服务器发送请求,给服务器发送数据,读取服务器会回写的数据 * 表示客户端的类: * java.net.Socket:此类实现客户...原创 2019-11-14 16:22:46 · 234 阅读 · 0 评论 -
BigDecimal使用ROUND_HALF_UP进行四舍五入
BigDecimal使用ROUND_HALF_UP进行四舍五入BigDecimal bdTest = new BigDecimal(1.745);BigDecimal bdTest1 = new BigDecimal(0.745);bdTest = bdTest.setScale(2, BigDecimal.ROUND_HALF_UP);bdTest1 = bdTest1.setScale...原创 2019-11-11 20:40:58 · 1183 阅读 · 0 评论 -
java注解-ElementType详解
文章目录@Retention:注解的保留位置@Target:注解的作用目标@Document:说明该注解将被包含在javadoc中@Inherited:说明子类可以继承父类中的该注解java中元注解有四个: @Retention @Target @Document @Inherited;@Retention:注解的保留位置@Retention(RetentionPolicy.SOURCE) ...原创 2019-10-23 15:36:33 · 2052 阅读 · 0 评论 -
IO-Java实现文件的复制
public class FileCopy { public static void main(String[] args) throws IOException { // 1.创建一个字节输入流对象,构造方法中绑定要读取的数据源 FileInputStream fis = new FileInputStream("H:\\1.jpg"); ...原创 2019-06-10 21:26:33 · 136 阅读 · 0 评论 -
一文搞懂Java环境变量
一文搞懂Java环境变量及Java的基本指令参数记得刚接触Java,第一件事就是配环境变量,作为一个初学者,只知道环境变量怎样配,在加上各种IDE使我们能方便的开发,而忽略了其本质的东西,只知其然不知其所以然,随着不断的深入,终于明白了Java环境变量所代表的的含义。首先我们来看一下Java中的环境变量,以我自己的为例JAVA_HOME:C:\Program Files\Java\jdk1...原创 2019-07-27 22:59:12 · 1666 阅读 · 0 评论 -
用反射实现简单的框架
用反射实现一个简单的java类:不能改变该类的任何代码。可以创建任意类的对象,可以执行任意方法可以通过只改变配置文件的方式去实现不同的类中的方法import java.io.InputStream;import java.lang.reflect.Method;import java.util.Properties;/** * 框架类 */public class Refl...原创 2019-07-23 10:12:29 · 250 阅读 · 0 评论 -
配置多个JDK存在的问题与解决方案 (亲测可用)
一台电脑安装多个JDK时的技巧 (亲测可用)我的电脑本来是JDK8的,后来的想在不同的JDK版本下测试JDK的垃圾回收器。一开始的的思路是,先安装JDK,为每个JDK配置自己的家目录,然后在想用哪个版本的时候,将JAVA_HOME指向对应JDK的家目录即可(这里PATH跟CLASSPATH不用变,只变JAVA_HOME 即可在不同JDK间切换),直接上图 (有时候图片来的更直观):先装的J...原创 2019-08-04 09:41:53 · 834 阅读 · 0 评论 -
类型信息
类型信息运行时类型信息可以使你在程序运行时发现和使用类型信息。java中识别类型信息的方式有两种方式:“传统的”RTTI(Run-Time Type Identification),它假定我们在编译时已经知道了所有的类型信息;在运行时,识别一个对象的类型。“反射”机制,它允许我们在运行程序时发现和使用类的信息。如果某个对象出现在字符串表达式中(涉及“+”和字符串对象的表达式),toS...原创 2019-07-26 09:10:00 · 221 阅读 · 0 评论 -
java三目运算中隐藏的类型转换
public class Demo3 { public static void main(String[] args) { // 三目运算中,当char和int类型的的数字同时出现时,分几种情况 // int数值 在ASCII码表中,如果条件满足为输出int时,则输出该数值在ASCII码表中的值 System.out.println(3 < 2 ? 'a' : 98); /...原创 2019-11-16 14:43:43 · 299 阅读 · 0 评论 -
java中的数组
数据在java中,数组是一种效率最高的存储和随机访问的对象引用序列的方式。数组是简单的线性序列,因而元素的访问非常快速,但为此而付出的代价是数组的大小是固定的,并且在生命周期中不可变。数组可以持有基本类型,而泛型之前的容器则不能。但是有了泛型,容器可以指定并检查他们所持有对象的类型,并且有了自动装包机制,容器看起来还能够持有基本类型。有了java1.5中的泛型后,数组仅存的优点只剩效率。无论...原创 2019-07-25 12:29:00 · 109 阅读 · 0 评论 -
通过工厂解耦
代码目录结构dao层Service层/** * @author minghai * @date 2019/6/30 - 19:13 * 一个创建Bean对象的工厂 * * Bean:在计算机英语中,有可重用的含义 * JavaBean:用Java语言编写的可重用组件 * javaBean > 实体类 * * * 它就是创建我们的service...原创 2019-06-30 20:08:54 · 175 阅读 · 0 评论 -
锟斤拷?UTF-8与GBK互转,为什么会乱码?
转自:https://blog.youkuaiyun.com/u010234516/article/details/52853214作为一名程序员,肯定有被乱码困扰的时候,真到了百思不得其解的时候,就会觉得:英文程序员真幸福。但其实只要明白编码之间的转换规律,其实乱码so easy~ 我们知道,计算机存储数据都是2进制,就是0和1,那么这么多的字符就都需要有自己对应的0和1组成的序列,计算机...转载 2019-07-01 16:01:10 · 11623 阅读 · 0 评论 -
java、javac、jar、javap
Java的基本指令参数javac [-d 目录|-verbose] filejava [-classpath(cp) dir] filejar -zcvf dir filejavap [-private§] filejavac命令我们都知道javac命令用来编译文件[外链图片转存失败(img-chnt1fPP-1564243368123)(https://i.loli.net/2...原创 2019-07-28 00:03:32 · 228 阅读 · 0 评论 -
对JavaBean详解
对JavaBean详解我们对JavaBean的理解可以从java和bean两个方面来理解,对于Java我们都很清楚,而bean在计算机中的含义为可重用组件。(ps:对Spring中的bean是不是有了一个新的认知呢?)在JavaBean规范中有bean的官方定义:一个bean就是一个可重用的构建,并且能在开发工具中可视化地操作“。因此JavaBean我们可以理解为:Java的可重用组件,一旦...原创 2019-07-28 12:11:08 · 182 阅读 · 0 评论 -
Java中创建泛型数组
Java中创建泛型数组使用泛型时,我想很多人肯定尝试过如下的代码,去创建一个泛型数组T[] array = new T[];当我们写出这样的代码时编译器会报Cannot create a generic array of T,初学泛型时,看到这个错就以为Java中不能创建泛型数组,随着不断的深入,当看到Tinking in Java中的泛型时,Java中是可以创建泛型的,真的是无知限制了自己...原创 2019-07-28 15:58:42 · 880 阅读 · 0 评论 -
启动tomcat服务器,为何要配置CATALINA_HOME和JAVA_HOME ?
转自:https://blog.youkuaiyun.com/weixin_38322156/article/details/72852607 问题 :win10系统,本地安装jdk,配置环境变量,是将jdk的bin目录,笔者本地目录为:E:\JavaTools\jdk1.8.0_131\bin直接配置到...转载 2018-07-24 10:34:42 · 929 阅读 · 0 评论 -
java中string字面量
/***@author minghai@date 2019年9月11日*/public class dd {public static void main(String[] args) {// 字面量存储在常量池中String str1=“hello”;String str2=“he”+ new String(“llo”);String str3=“he”+ “llo”...原创 2019-09-11 22:19:29 · 346 阅读 · 0 评论 -
Java集合中实现交并补
import java.util.HashSet;import java.util.Set;/** * * @author minghai * */public class TestHashSet { public static void main(String[] args) { Set<Integer> A = new HashSet<Integer&g...原创 2019-09-01 13:35:24 · 2453 阅读 · 0 评论 -
一道经典题搞懂HashSet
import java.util.HashSet;public class TestHashSet { public static void main(String[] args) { HashSet<Person> set = new HashSet<Person>(); Person p1 = new Person("AA",1001); Person...原创 2019-08-17 10:13:24 · 266 阅读 · 0 评论 -
一文然你对实例部类与静态内部类有更深的了解
Java中一直对实例内部类和静态内部类特别混淆,对它能的实例化总是容易忘记,随着对java的不断学习,终于有了自己的理解,因此分享自己的心得:对实例内部类与静态内部类的创建先看代码public class OuterClass { class Inner { } static class Inner2 { } public static void ...原创 2019-08-20 17:58:06 · 195 阅读 · 0 评论 -
Arrays.asList()方法注意事项
在API中对asList()的描述public static <T> List<T> asList(T... a)返回由指定数组支持的固定大小的列表。(将返回的列表更改为“写入数组”。)该方法作为基于数组和基于集合的API之间的桥梁,与Collection.toArray()相结合 ,返回的列表是可序列化的,并实现RandomAccess。此方法还提供了一种方便的方...原创 2019-08-09 16:30:04 · 977 阅读 · 1 评论 -
JVM运行时数据区及对象在内存中初始化的过程
JVM内存模型Java虚拟机所管理的内存区域,也称为运行时数据区,分为以下几个运行时数据区,如图所示程序计数器:当前程序所执行字节码的行号指示器程序计数器(Program Counter Register)是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选 取下一条需要执行的字节码指令,分支、循环、跳转...原创 2019-08-02 14:23:08 · 613 阅读 · 0 评论 -
子类与父类中静态代码块、匿名代码块、构造器的执行顺序
子类与父类中静态代码块、匿名代码块、构造器的执行顺序先看结论,执行顺序为父类静态代码块–>>子类静态代码块–>>父类匿名代码块–>>父类构造器–>>子类匿名代码块–>>子类构造器其中静态代码块在初始化时会被调用,但是匿名代码块与构造器只有在创建对象时才会调用。上代码:父类:public class InitSuper { s...原创 2019-08-08 11:04:50 · 278 阅读 · 0 评论 -
IO-文件输输出流
一、输出流的原理Java向文件中写数据的原理Java程序–>JVM(java虚拟机)–>OS(操作系统)–>OS调用写数据的方法–>把数据写入到文件中tips:写数据的时候,会把十进制的整数转换成二进制的整数。硬盘中存储的数据都是字节,1个字节(byte)=8个比特位(bit)任意的文本编辑器(notepad,notepad++…),在打开文件的时候,都会查询...原创 2019-06-10 16:21:03 · 170 阅读 · 0 评论 -
IntegerCache的妙用和陷阱
转载自 IntegerCache的妙用和陷阱考虑下面的小程序,你认为会输出为什么结果?public class Test { public static void main(String[] args) { &...转载 2019-04-20 09:54:49 · 147 阅读 · 0 评论 -
Java Version Mismatch
问题描述:eclipse加载新的项目后报一个错误,具体描述如下:Description Resource PathLocation Type Java compiler level does notmatch the version of the installed Java project facet.webattemp&...转载 2019-02-15 13:37:48 · 865 阅读 · 0 评论 -
ssh整合中文乱码
转自:https://blog.youkuaiyun.com/u012990533/article/details/38662115 我相信,在ssh整合的时候,大多数程序员都会遇到一个蛋疼的问题——乱码,无论是在获取客户端提交的数据,在jsp间跳转或是在数据库存储查询时等等......,多多少少都会遇到乱码的问题,...转载 2018-10-29 21:07:30 · 157 阅读 · 0 评论 -
ServletContext,ActionContext,ServletActionContext
ServletContextServletContext从他的package信息可以看出,它是标准的JavaEE WebApplication类库 javax.servlet.ServletContextServletC...转载 2018-09-13 10:54:03 · 177 阅读 · 0 评论 -
使用c3p0连接池操作mysql数据库中文乱码解决办法
亲测有效 转自:https://blog.youkuaiyun.com/top_code/article/details/8538639 今天在一台新的CentOS机器上使用c3p0连接池操作mysql数据库出现中文乱码问题,具体表现为:查询时无中文乱码问题,写数据时中文乱码,查看了机器上数据库字符集也是UTF...转载 2018-07-22 10:07:05 · 1073 阅读 · 0 评论 -
java与Mysql乱码问题
转载自:http://blog.youkuaiyun.com/Zhaozetu/article/details/8681350Java-MySQL中文乱码编码问题总结太多次遇到这个问题,每次都要重新检查资料,悲剧啊!花了大量的时间和精力,总结如下:(包含几乎所有跟编码有关的设置,我相信Java-MySQ...转载 2018-07-22 09:46:52 · 1719 阅读 · 1 评论 -
FilenameUtils 详解
一、概述这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框...转载 2018-07-26 10:45:44 · 1369 阅读 · 0 评论