随笔分类 -  Java知识学习

摘要:三目运算符是我们经常在代码中使用的,a= (b==null?0:1); 这样一行代码可以代替一个 if-else,可以使代码变得清爽易读。 但是,三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。 前段时间遇到(一个由于使用三目运算符导致的问题,其实是因为有三目运算符和自动拆 阅读全文
posted @ 2021-06-14 16:04 古兰精 阅读(1508) 评论(0) 推荐(0) 编辑
摘要:首先明白一个事,Java存在一个常量池,可以用来存储字符串常量。 一、创建的字符串变量在内存中的区别 对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才能确定的就存储在堆中。对于equals相等的字符串,在常量池中 阅读全文
posted @ 2021-06-11 14:53 古兰精 阅读(2533) 评论(0) 推荐(0) 编辑
摘要:今天在写代码时碰到一个提示,提示如下: 提示的信息是说:new OrderVO() 是冗余的。所以准备研究一下是怎么回事。 // 例如以下两种情况 // 场景1 ArrayList<BookInfo> InfoList=null; BookInfo bookinfo=null; bookinfo=t 阅读全文
posted @ 2021-06-11 14:17 古兰精 阅读(1549) 评论(0) 推荐(0) 编辑
摘要:要使用工具类 StringUtils ,首先得导入依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.9</version> </depende 阅读全文
posted @ 2021-06-04 21:47 古兰精 阅读(8550) 评论(0) 推荐(1) 编辑
摘要:一、IOC(Inverse of Control):控制反转,也可以称为依赖倒置 所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,因为A要用到B,所以A就必须依赖于B的方法。 所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果不倒置,意思就是A主动获 阅读全文
posted @ 2021-06-01 17:46 古兰精 阅读(698) 评论(0) 推荐(0) 编辑
摘要:Maven是一个Java项目管理和构建工具,它可以定义项目结构、项目依赖,并使用统一的方式进行自动化构建,是Java项目不可缺少的工具。 一、Maven介绍 1、在了解Maven之前,我们先来看看一个Java项目需要的东西。 (1)首先,我们需要确定引入哪些依赖包。例如,如果我们需要用到common 阅读全文
posted @ 2021-05-27 18:02 古兰精 阅读(417) 评论(0) 推荐(0) 编辑
摘要:一、IO流介绍 1、IO是指Input/Output,即输入和输出。以内存为中心: Input指从外部读入数据到内存,例如,把文件从磁盘读取到内存,从网络读取数据到内存等等。 Output指把数据从内存输出到外部,例如,把数据从内存写入到文件,把数据从内存输出到网络等等。 为什么要把数据读到内存才能 阅读全文
posted @ 2021-05-27 14:59 古兰精 阅读(624) 评论(0) 推荐(0) 编辑
摘要:在Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象称为集合。引入集合的原因是方便处理一组类似的数据。 数组有如下限制:(1)数组初始化后大小不可变;(2)数组只能按索引顺序存取。 因此,我们需要各种不同类型的集合类来处理不同的数据,例如: 阅读全文
posted @ 2021-05-26 17:19 古兰精 阅读(218) 评论(0) 推荐(0) 编辑
摘要:一、什么是泛型 1、ArrayList 误转型的案例。为了解决新的问题,我们必须把ArrayList变成一种模板:ArrayList<T>,代码如下: public class ArrayList<T> { private T[] array; private int size; public vo 阅读全文
posted @ 2021-05-26 15:13 古兰精 阅读(289) 评论(0) 推荐(0) 编辑
摘要:什么是反射?反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息。 反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法。 一、class类 1、class(包括interface)的本质是数据类型(Type)。无继承关系的数据类型无法赋值。 Numb 阅读全文
posted @ 2021-05-25 19:13 古兰精 阅读(226) 评论(0) 推荐(0) 编辑
摘要:一、Java中的异常 1、Java内置了一套异常处理机制,总是使用异常来表示错误。异常是一种class,因此它本身带有类型信息。异常可以在任何地方抛出,但只需要在上层捕获,这样就和方法调用分离了 2、Java异常的继承关系 从继承关系可知:Throwable是异常体系的根,它继承自Object。Th 阅读全文
posted @ 2021-05-25 18:31 古兰精 阅读(879) 评论(0) 推荐(0) 编辑
摘要:一、字符串与编码 1、在Java中,String是一个引用类型,它本身也是一个class。但是,因为String太常用了,所以Java提供了"..."这种字符串字面量表示方法。 String s1 = "Hello!"; // 实际上字符串在String内部是通过一个char[]数组表示的,因此,按 阅读全文
posted @ 2021-05-25 16:18 古兰精 阅读(187) 评论(0) 推荐(0) 编辑
摘要:一、方法 1、直接把field用public暴露给外部可能会破坏封装性,直接操作field,容易造成逻辑混乱。为了避免外部代码直接去访问field,我们可以用private修饰field,拒绝外部访问。 2、private的field,我们需要使用方法(method)来让外部代码可以间接修改fiel 阅读全文
posted @ 2021-05-25 13:05 古兰精 阅读(259) 评论(0) 推荐(0) 编辑
摘要:一、为什么java中静态方法不能调用非静态方法或变量? 我们需要首先知道的是静态方法和静态变量是属于某一个类,而不属于类的对象。我们不直接讲原因,先从jvm说起: 这是一张类加载的生命周期图。 1、加载 “加载”是“类加载机制”的第一个过程,在加载阶段,虚拟机主要完成三件事: (1)通过一个类的全限 阅读全文
posted @ 2021-05-24 19:04 古兰精 阅读(175) 评论(0) 推荐(0) 编辑
摘要:一、静态字段与实例字段 在一个class中定义的字段,我们称之为实例字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。 还有一种字段,是用static修饰的字段,称为静态字段:static field。 实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共 阅读全文
posted @ 2021-05-24 17:57 古兰精 阅读(455) 评论(0) 推荐(0) 编辑
摘要:本文将简单的说明下当我们运行Java程序时JVM(Java虚拟机)的内存分配情况。 一、基础概念要点 首先我们先来感观的认识下几个名词: 1、栈空间(stack):连续的存储空间,遵循后进先出的原则,用于存放局部变量。 一般来说,基本数据类型直接在栈中分配空间,局部变量(在方法代码段中定义的变量)也 阅读全文
posted @ 2021-05-18 17:25 古兰精 阅读(138) 评论(0) 推荐(0) 编辑
摘要:首先我们可以先了解下这篇博客,对比着理解会更好一些:理解JS里的稀疏数组与密集数组 一、稀疏数组的实际需求 1、问题背景 编写的五子棋程序中,有存盘和续上盘的功能。 2、分析问题 因为该二维数组的很多值的默认值为0,因此也记录了很多没有意义的数据。 3、解决方案 当一个数组中大部分元素为零或同一值时 阅读全文
posted @ 2021-05-18 15:16 古兰精 阅读(294) 评论(0) 推荐(0) 编辑
摘要:本文转载自公众号 Hollis:对于初学者来说,要想把这个问题回答正确,是比较难的。在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂。所以,就有了我写这篇文章的初衷。这篇文章中,我从什么是方法的实际参数 阅读全文
posted @ 2021-05-17 15:25 古兰精 阅读(177) 评论(0) 推荐(0) 编辑
摘要:在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如print("hello");、print("hello","lisi");、print("hello","张三", "alexia");,下面介绍如何定义可变长 阅读全文
posted @ 2021-05-17 14:38 古兰精 阅读(403) 评论(0) 推荐(0) 编辑
摘要:问题背景: 浮点数拓展:银行业务,浮点数计算怎么表示? 浮点数的加减乘除会存在问题,因为浮点数是有限的离散的,而有很多数据是无限的,浮点数都会存在舍入误差,它是接近但不等于 原则是:最好完全不使用浮点数进行比较。 但是如果需要比较的话,则需要使用 Java 内置的类 BigDecimal 去进行浮点 阅读全文
posted @ 2021-05-17 14:13 古兰精 阅读(283) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示