
Java学习
文章平均质量分 87
just55
这个作者很懒,什么都没留下…
展开
-
深入浅出了解Java程序中的乱码
Java程序编码乱码踩坑,大家写java程序,肯定或多或少有一些关于字符编码方面的问题,尤其是乱码,今天我们就一个由浅入深,来解析一些我们编写Java程序常遇到的坑和要注意的知识点。原创 2020-05-14 18:34:57 · 11220 阅读 · 1 评论 -
详解Java 字节流的read()方法返回int型而非byte型的原因
我们都知道java中io操作分为字节流和字符流,对于字节流,顾名思义是按字节的方式读取数据,所以我们常用字节流来读取二进制流(如图片,音乐等文件)。问题是为什么字节流中定义的read()方法返回值为int类型呢?既然它一次读出一个字节数据为什么不返回byte类型呢?网上的说法不能说它是错误的,只是我感觉没有解释清楚,接下来我们以FileInputStream /FileOutputStream和...原创 2020-03-14 22:55:57 · 1891 阅读 · 1 评论 -
Java集合详解之Set集合
我们今天对Java中Collection接口下的Set集合进行详细讲解,Set继承于Collection接口,没有新增方法,不允许出现重复元素且无序,主要有HashSet与TreeSet两大实现类,以及一个不常见的EnumSet。一、Set简介1.Set特点Set集合中的元素是唯一的,不可重复(取决于hashCode和equals方法),也就是说具有唯一性。Set集合中元素不保证存取顺序...原创 2020-03-03 00:04:27 · 998 阅读 · 0 评论 -
Java迭代器Iterator知识点浅析
什么是迭代器:维基百科解释:迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口,设计人员无需关心容器对象的内存分配的实现细节。我们解释一下上面这段话: 讲到迭代器,就离不开容器,也是是Java中经常讲到的集合(Java集合框架的集合类,我们有时候称之为容器)。容器的种类有很多种,比如ArrayLis...原创 2020-02-19 00:54:27 · 1084 阅读 · 0 评论 -
Java中BigDecimal的使用浅析
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算...原创 2019-11-01 23:22:09 · 445 阅读 · 0 评论 -
Java中的自动拆装箱机制详解
从JDK5后开始,为了减少开发人员的工作,Java提供了自动拆箱与自动装箱功能,下面就来讲解一下其内容自动装箱:把基本类型转换为包装类类型自动拆箱:把包装类类型转换为基本类型原理:自动装箱都是通过包装类的valueOf()方法来实现的.自动拆箱都是通过包装类对象的xxxValue()来实现的。好处:让基本类型也具有对象的特征,就出现了包装类型,将基本类型“包装起来”,使得它具有了对象的...原创 2019-11-01 13:30:09 · 737 阅读 · 0 评论 -
StringBuffer的用法
StringBuffer的添加功能public StringBuffer append(String str): * 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身public StringBuffer insert(int offset,String str): * 在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身举例说明:StringBu...原创 2019-10-28 02:15:38 · 7119 阅读 · 0 评论 -
String和StringBuffer的详解,联系和区别
StringBuffer是一个具有对象引用传递特点的字符串对象。 StringBuffer对象可以调用其方法动态的进行增加、插入、修改和删除操作,且不用像数组那样事先指定大小,从而实现多次插入字符,一次整体取出的效果,因而操作字符串非常灵活方便。 一旦通过StringBuffer生成最终想要的字符串,就可调用它的toString方法将其转换为一个String对象。那么有人就问StringBuff...原创 2019-10-27 21:51:37 · 5632 阅读 · 0 评论 -
compareToIgnoreCase比较过程中需要先toUpperCase然后toLowerCase的原因
api说明:public static char toUpperCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。注意,对于某些范围内的字符,特别是那些是符号或表意符号的字符,Character.isUpperCase(Character.toUpperCase(ch)) 并不总是返回 true。通常,应该使用 String.toUpper...转载 2019-10-27 00:11:17 · 496 阅读 · 0 评论 -
Java中的常量优化机制
问题抛出:静态常量可以再编译器确定字面量,但常量并不一定在编译期就确定了, 也可以在运行时确定.所以Java针对某些情况制定了常量优化机制。常量优化机制:给一个变量赋值,如果等于号的右边是常量的表达式并且没有一个变量,那么就会在编译阶段计算该表达式的结果,然后判断该表达式的结果是否在左边类型所表示范围内,如果在,那么就赋值成功,如果不在,那么就赋值失败。但是注意如果一旦有变量参与表达式,那么就...原创 2019-10-19 21:11:35 · 4511 阅读 · 8 评论 -
Java设置环境变量的作用和意义
Java设置环境变量的作用和原因在java 中需要设置三个环境变量(1.5之后不用再设置classpath了,但个人强烈建议继续设置以保证向下兼用问题)JDK安装完成之后我们来设置环境变量:右击“我的电脑”,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:一、配置JAVA_HOME变量:为什么要配置classpath环境变量?一是为了方便引用,比如,JDK安装在...原创 2019-10-14 18:04:15 · 3356 阅读 · 0 评论 -
JAVA中 类变量,局部变量和实例变量区别
java语言支持的变量类型类变量:独立于方法之外的变量,用 static 修饰。局部变量:类的方法中的变量。实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰。public class Variable{ static int allClicks=0; // 类变量 String str=”hello world”; // 实例变量 public vo...转载 2019-06-01 00:10:49 · 906 阅读 · 0 评论 -
解决EditPlus中Java编译出现中文乱码
亲测有效文档-文本编码-转换文本编码:系统默认工具-首选项-文件-默认编码:UTF-8原创 2019-04-21 20:24:42 · 1947 阅读 · 1 评论 -
EditPlus配置Java运行环境
【首先】你得确定jdk已经安装好,并且Java的环境变量已经配置成功。具体操作方式可以看我的另一篇文章:https://blog.youkuaiyun.com/weixin_43465312/article/details/86424182下面正式开始配置Java运行环境1.打开工具-配置自定义工具然后点击“组名",将Group 1改为“Java”:然后点击“添加工具”-“程序”:添加编译功能...原创 2019-04-21 16:00:38 · 7622 阅读 · 2 评论 -
JAVA中 类变量,局部变量和实例变量详解
Java程序的变量大体可分为成员变量和局部变量。局部变量其中局部变量可分为如下3类。**形参:**在方法签名中定义的局部变量,由方法调用者负责为其赋值,随方法的结束而消亡。**方法内的局部变量:**在方法内定义的局部变量,必须在方法内对其进行显示初始化。这种类型的局部变量从初始化完成后开始生效,随方法的结束而消亡。**代码块的局部变量:**在代码块内定义的局部变量,必须在代码块内对其进行...原创 2019-06-01 01:20:55 · 879 阅读 · 0 评论 -
Java类的访问权限详解
Java中总共有四类访问权限修饰符(加上默认的)private,public,protected,默认不写(firendly)下面就讲解不同层次的访问权限作用:Java的类有2种访问权限,public、默认;而方法和变量有4种:public、默认、protected、private。一、Class类的访问权限: 1.public:可以供所有的类访问。 2.默认:默认可以称为frien...原创 2019-09-23 00:53:30 · 4867 阅读 · 0 评论 -
详解Java的继承机制和继承的内部处理
继承的内部处理 对于父类,当它被子类继承后,并非复制了一份成员方法和成员属性到子类的空间中,它仍然只在父类空间中存在一份,子类通过继承链(本质上是指针) 来访问父类中的方法。如果程序中通过“子类对象名.成员方法名” 的方式使用成员,编译器会首先到子类中查找是否存在此成员,如果没有,顺着继承链到其父类空间中查找,依次往上推,如果找到Ob-ject类(该类为所有类的公共祖先)还未发现此成员,...原创 2019-09-23 21:06:08 · 886 阅读 · 1 评论 -
Java中静态变量和静态方法的优缺点以及应用场景
Java静态变量和静态方法会在程序初始化运行时候就加载到内存,这个就使它既然好处又有缺点。优点:不需要在进行实例化。静态变量的值,直接赋新值即可,不需要参数传递,之后可以直接进行参数引用即可;静态方法可以直接通过"类名.方法"的形式进行方法调用。通常方法被多次调用,并且方法中没有动态方法引用的时候使用比较方便。缺点:初始化加载到内存,如果后续没被引用,加大了内存负担和程序运行负担,影响程序运行...原创 2019-09-25 02:16:36 · 4055 阅读 · 0 评论 -
Java中子类能不能继承父类的私有变量和方法?
一、子类可以继承父类的private属性和private方法:1、子类继承父类,子类拥有了父类的所有属性和方法。 程序验证,父类的私有属性和方法子类是无法直接访问的。当然私有属性可以通过public修饰的getter和setter方法访问到的,但是私有方法不行。假设:子类不能够继承父类的私有属性和方法那么:分析内存后,会发现,当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进...原创 2019-09-25 23:17:40 · 16160 阅读 · 8 评论 -
Java动态绑定和多态性详解
向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。原创 2019-09-27 16:30:02 · 1997 阅读 · 3 评论 -
Java抽象类/抽象方法定义及其特性详解
类的继承结构中,越往上的类越具有通用性,也就越抽象。当它抽象到一定程度,就变成概念成框架,不能再产生实例化的对象了。例如“交通工具”,就无法用它来产生一个实例。对应这一现象,Java中提供了抽象类,它只能作为父类,不能实例化。定义抽象类的作用是将一类对象的共同特点抽象出来,成为代表该类共同特性的抽象概念,其后在描述某一具体对象时,只要添加与其他子类对象的不同之处,而不需要重复类的共同特性。这样就使得程序概念层次分明,开发更高效。与抽象类紧密相连的是抽象方法一它总是用在抽象类或接口中。原创 2019-09-28 19:50:43 · 9259 阅读 · 0 评论 -
Java接口知识点详解
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的...原创 2019-10-05 16:55:26 · 1427 阅读 · 0 评论