从String中移除空白字符的多种方式!?
字符串,是Java中最常用的一个数据类型了。我们在日常开发时候会经常使用字符串做很多的操作。比如字符串的拼接、截断、替换等。这一篇文章,我们介绍一个比较常见又容易被忽略的一个操作,那就是移除字符串中的空格。其实,在Java中从字符串中删除空格有很多不同的方法,如trim,replaceAll等。但是,在Java 11添加了一些新的功能,如strip、stripLeading、stripTraili
在Java中,负数的绝对值竟然不一定是正数!!!
绝对值是指一个数在数轴上所对应点到原点的距离,所以,在数学领域,正数的绝对值是这个数本身,负数的绝对值应该是他的相反数。这几乎是每个人都知道的。在Java中,想要获得有个数字的绝对值,可以使用java.lang.Math中的abs方法,这个类共有4个重载的abs方法,分别是:public static int abs(int a) { return (a < 0)
小知识|Java中的"魔数"
在编程过程中,我们可能经常听到“魔数”这个词,那么这个词到底指的是什么呢?什么数叫做魔数呢?一、标识文件类型的“魔数”大多数情况下,我们都是通过扩展名来识别一个文件的类型的,比如我们看到一个.txt类型的文件我们就知道他是一个纯文本文件。但是,扩展名是可以修改的,那一旦一个文件的扩展名被修改过,那么怎么识别一个文件的类型呢。这就用到了我们提到的“魔数”。很多类型的文件,其起始的几个字节的内容是固定
面试官疯了,问我为什么浮点数不精确?
很多人都知道,Java 中的浮点数并不精确,需要用 BigDecimal进行精确计算,但是,很少有人知道为什么浮点数不精确呢?不精确为什么还要用呢?本文就来展开分析一波;我们知道,计算机的数字的存储和运算都是通过二进制进行的,对于,十进制整数转换为二进制整数采用”除2取余,逆序排列”法具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1
千万不要再这样创建集合了!极容易内存泄露!
由于Java语言的集合框架中(collections, 如list, map, set等)没有提供任何简便的语法结构,这使得在建立常量集合时的工作非常繁索。每次建立时我们都要做:1、定义一个空的集合类变量 2、向这个结合类中逐一添加元素 3、将集合做为参数传递给方法例如,要将一个Set变量传给一个方法:Map<String,String> users = new HashMap<
单例模式的七种写法
写在前面:单例模式,是设计模式中最简单的一种,但是,他却有很多的东西需要注意,性能、线程安全等。这篇文章是我转载的,转载之后我仔细研究了一下并加了备注和相关知识链接(鼠标悬浮在带链接的文字上就可以看到我的注释,例如:鼠标悬浮在这)。第一种(懒汉,线程不安全):public class Singleton { private static Sing
设计模式(三)——JDK中的那些单例
在设计模式(二)——单例模式中介绍了单例的概念、用途、实现方式、如何防止被序列化破坏等。单例模式在JDK源码中也有多处应用。本文通过JDK(java 8)中几个典型的单例的使用来复习一下单例模式,并且通过这种实际应用来深入理解一下单例的用法与实现方式。java.lang.RuntimeRuntime类封装了Java运行时的环境。每一个java程序实际上都是启动了一个JVM进程,那么每个JVM进程都
设计模式(二)——单例模式
设计模式(一)——设计模式概述中简单介绍了设计模式以及各种设计模式的基本概念,本文主要介绍单例设计模式。包括单例的概念、用途、实现方式、如何防止被序列化破坏等。概念单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式。在 GOF 书中给出的定义为:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式一般体现在类声明
设计模式(一)——设计模式概述
在软件工程中,设计模式(design pattern)是对软件设计中普遍存在的各种问题,所提出的解决方案。设计模式并不是固定的一套代码,而是针对某一特定问题的具体解决思路与方案。可以认为是一种最佳实践,因为他是无数软件开发人员经过长时间的实践总结出来的。提到设计模式不得不提《设计模式:可复用面向对象软件的基础》(Design Patterns – Elements of Reusable Obje
一篇程序员写给 自己35 岁时的文章
这篇文章,我足足写了2个月,写了删,删了又写,很是纠结。本来文笔就不好,所以写来写去,又删来删去,终于纠结了许久,今天,写完了。分享给大家,希望对大家有所帮助与借鉴。大家凑合看吧。。说实话,在这之前,我从来没有想过我的35岁是个什么样子?也从来没有想过,35岁这么尴尬的年纪这么快的到来。特别是这几年互联网行业的兴起、没落,一波又一波的预示着很多人的中年危机。我一直喜欢说一句话:危机、焦
跳槽时,这些Java面试题99%会被问到
我在 Oracle 已经工作了近 7 年,面试过从初级到非常资深的Java工程师,且由于 Java 组工作任务的特点,我非常注重面试者的计算机科学基础和编程语言的理解深度,可以不要求面试者非要精通 Java。所以,如果你对 C/C++ 等其他语言能够掌握得非常系统和深入,也是符合需求的。工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通
Log4j史诗级漏洞,我们这些小公司能做些什么?
事件背景12月10日,看到朋友圈中已经有人在通宵修改、上线系统了。随即,又看到阿里云安全、腾讯安全部门发出的官方报告:”Apache Log4j2存在远程代码执行漏洞“,且漏洞已对外公开。看到相关消息,马上爬起来把所有项目的日志系统过滤一遍,还好老项目采用的log4j,新项目采用的logback,没有中招。随后就看到朋友圈铺天盖地的相关消息。作为一个史诗级的事件,紧急修改漏洞是必然的。作为程序员,
Java 程序员都该懂的 HashMap
HashMap 一直是非常常用的数据结构,也是面试中十分常问到的集合类型,今天就来说说 HashMap。但是为什么要专门说明是 Java8 的 HashMap 呢?我们都知道,Java8 有很多大的变化和改动,如函数式编程等,而 HashMap 也有了一个比较大的变化。先了解一下 Map常见的Map类型有以下几种:HashMap:无序访问速度快key不允许重复(只允许存在一个null key)Li
集合框架学习(一):List&&Map
集合框架集合实现了动态保存集合提供了方便的操作方法Collection:单列集合List 单列集合 有序集合 可重复集合ArrayListArrayList可以加入NULL值,且可加入多个ArrayList是数组实现存储的ArrayList是线程不安全的源码:ArrayList中维护了一个Object[]类型的elementData扩容机制:使用无参构造器构造时,初始化长度为0,插入数据后,扩容e
Java学习笔记(四)- 手写循环队列,实现多生产者单消费者
学习的最好方式就是写出来今天我们就手撸一个循环队列吧,多生产者,单消费者模式,模拟队列满了之后的场景这里先说明下循环队列的实现原理队列长度固定,队列有头部指针(front)、尾部指针(rear)两个指针每插入一个元素,尾部指针前移一位每取出一个元素,头部指针前移一位队列满了之后,取出一个元素,再加入一个元素,尾部指针归零取元素的个数达到队列最大长度之后,头部指针归零1、下面上代码实操,
JAVA中级教程 - IO输入输出
2.1 文件对象文件和文件夹都是用File代表创建一个文件对象使用绝对路径或者相对路径创建File对象package file;import java.io.File;public class TestFile { public static void main(String[] args) { // 绝对
JAVA中级教程 - 第一讲 异常处理
1.1 什么是异常异常定义:导致程序的正常流程被中断的事件,叫做异常。文件不存在异常比如要打开d盘的LOL.exe文件,这个文件是有可能不存在的。Java中通过 new FileInputStream(f) 试图打开某文件,就有可能抛出文件不存在异常FileNotFoundException。如果不处理该异常,就会有编译错误。如下代码:package exception;
JAVA基础学习-数字与字符串学习总结
9.1 装箱拆箱封装类所有的基本类型,都有对应的类类型。比如int对应的类是Integer,这种类就叫做封装类。package digit;public class TestNumber { public static void main(String[] args) { int i = 5;
JAVA基础学习-操作符学习总结
4.1 算数操作符基本算数操作符: + - * /练习求和使用Scanner从控制台获取两个数字,然后计算这两个数字的和。public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.
JAVA基础学习- 类和对象学习笔记
2.1 类和对象本章节会引入面向对象的基本概念 (但是不会深入展开,仅仅是引入深入的学习会在后续的类和对象以及接口与继承 中展开)。相信你肯定玩过DOTA或者LOL,没玩过,也一定听说过身边有很多的朋友在玩这款游戏的。假设,我们要设计一个LOL这样的游戏,使用面向对象的思想来设计,应该怎么做?设计英雄这个类LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女。所有这些英雄,都有