03 2018 档案

摘要:作为一个基本的工具类,同时又是使用频率很高的类,Java为其提供了丰富的方法支持。Java中的String类中包含了50多个方法。最令人惊讶的是绝大多数方法都很有用,下面我们根据功能来分类介绍一下: 1. 关于码点的方法 在昨天我们探讨了一下码点,其中也详细叙述了码点的方法,这里我就不再赘述,只追加 阅读全文
posted @ 2018-03-12 20:17 十月十四 阅读(321) 评论(0) 推荐(0)
摘要:1 字符串的声明与创建 学习String的第一步就是创建(声明)字符串,我们在这里之所以分为创建和声明(其实是一个意思,都是创建字符串,但两者却有本质的区别)是因为String是一个很特殊的类,它的对象产生在五种创建对象之外,还有另外一种方式,下面我们就来详细了解一下. 1.1 声明字符串 Java 阅读全文
posted @ 2018-03-08 16:34 十月十四 阅读(652) 评论(0) 推荐(0)
摘要:很多前辈我可能对于我的这节文章很困惑,觉得String这个东西还有什么需要特别了解的吗?其实不然,String是一个使用十分频繁的工具类,不可避免地我们也会遇到一些陷阱,深入了解String对于我们避免陷阱,甚至优化操作是很有必要的。本节我们主要讲解"码点与代码单元"、“不可变的String”、“无 阅读全文
posted @ 2018-03-08 16:06 十月十四 阅读(391) 评论(0) 推荐(0)
摘要:实际上在写本文之前,我曾考虑是先探讨面向对象,还是先选择String和Arrays,最后还是选择了后者,并非是面向对象对我们不重要,相反它是Java的灵魂所在,之所以这样的安排是因为这两个是在是我们程序中最为常见的了,所以放在面向对象前面讲解,开始讲解String之前,我先说一下我对于类的一些探讨路 阅读全文
posted @ 2018-03-07 15:05 十月十四 阅读(433) 评论(0) 推荐(0)
摘要:Java比起C++一个很大的进步就在于Java不用再手动控制指针的delete与free,统一交由JVM管理,但也正因为如此,一旦出现内存溢出异常,不了解JVM,那么排查问题将会变成一项艰难的工作。 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区。这些区域都有各自 阅读全文
posted @ 2018-03-07 14:20 十月十四 阅读(484) 评论(0) 推荐(0)
摘要:引言 什么都先不说,先看下面这个引入的例子: 再将上面的例子加上一行代码: 是不是感觉莫名其妙,新定义的str2好像和str1没有半毛钱的关系,怎么会影响到有关str1的输出结果呢?其实这都是intern()方法搞的鬼!看完这篇文章,你就会明白。 这中间的原因和Hotspot是有很大关系的,在JVM 阅读全文
posted @ 2018-03-06 18:51 十月十四 阅读(209) 评论(0) 推荐(0)
摘要:不知道有没有前辈注意过,当你编写一段“废话式的代码时”会给出一个Dead Code警告,点击警告,那么你所写的废物代码会被编译器消除,那么如果你不理睬这个警告呢?编译后会是什么样的呢?下面我们写点代码,来查看一下编译后的结果,这里使用反编译工具jd-gui.exe。代码如下: 反编译 上面我们知道了 阅读全文
posted @ 2018-03-06 03:56 十月十四 阅读(256) 评论(0) 推荐(0)
摘要:在讲解流程控制语句之前,我们先来说一下语句的问题。Java中的语句分为声明和赋值语句,条件和循环语句,调用和返回语句;我们之所以每两个放在一起是有深意的,我们大致将语句分为这三块,并以此为纲来说一下,重点在流程控制语句(条件和循环语句)。 程序就是由一系列的声明、赋值、条件、循环、调用和返回语句组成 阅读全文
posted @ 2018-03-06 03:50 十月十四 阅读(333) 评论(0) 推荐(0)
摘要:剖析加强for 很长一段时间对于foreach都有一种误解,那就是foreach只是普通for的包装,底层还是普通for循环,直到深入了解迭代器的时候,才发现自己错了,本节就来探讨一下foreach,深入底层去了解它。下面我们通过一段代码来看一下: 想要了解它的底层实现,自然需要它编译后的代码,下面 阅读全文
posted @ 2018-03-06 02:09 十月十四 阅读(246) 评论(0) 推荐(0)
摘要:我们前边曾说过程序=数据结构+算法,数据结构讲的是数据在内存中的存储形式,这个我会作为2018的一个重点来研究,不过在这里不做赘述,前半年的工作以JavaSE为主。算法则是我们在数据结构的基础上对其的一些运算,这些运算可以是逻辑运算也可以是数学运算,这也是本节我想讨论的问题,下面开始本节学习。 1 阅读全文
posted @ 2018-03-05 01:32 十月十四 阅读(482) 评论(0) 推荐(0)
摘要:1.1 变量与常量 我们在开发中会经常听到常量和变量,那么常量和变量指的又是什么呢?顾名思义,在程序执行过程中,其值不能被改变的量称为常量,其值能被改变的量称为变量。变量与常量的命名都必须使用合法的标识符。 1.1.1 常量 在程序运行过程中一直不会改变的量称为常量(constant),通常也被称为 阅读全文
posted @ 2018-03-04 21:58 十月十四 阅读(326) 评论(0) 推荐(0)
摘要:Unicode Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求(Unicode的作用)。 阅读全文
posted @ 2018-03-04 20:22 十月十四 阅读(269) 评论(0) 推荐(0)
摘要:如何将十进制的浮点数 转换二进制的浮点数,分为两部分: 1. 先将整数部分转换为二进制, 2. 将小数部分转换为二进制, 然后将整数部分与小数部分相加。 以 20.5 转换为例,20转换后变为10100;0.5 要转换二进制,需要乘2, 乘完之后 取整数部分,然后用乘的结果减去整数部分, 然后接着乘 阅读全文
posted @ 2018-03-04 20:20 十月十四 阅读(1600) 评论(1) 推荐(0)
摘要:我们都知道Java的基本数据类型内存中都有一个固定的位数(内存分配空间),如byte占8位,int占32位等。正因如此,当把一个低精度的数据类型转成一个高精度的数据类型时,必然会涉及到如何扩展位数的问题。这里有两种解决方案: (1)补零扩展:填充一定位数的0。 (2)补符号位扩展:填充一定位数的符号 阅读全文
posted @ 2018-03-04 20:18 十月十四 阅读(484) 评论(0) 推荐(0)
摘要:机器数(这里的机器数说的就是数值在计算机中的存储形式,相关可以了解数据在计算机中的表示)之间的转换往往是通过原码来实现的,下面我们结合进制来来一下; 进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制 X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进 阅读全文
posted @ 2018-03-04 20:13 十月十四 阅读(1161) 评论(0) 推荐(0)
摘要:计算机发明的初衷就是用于帮助我们加工和处理数据,虽然时至今天计算机看起来无所不能,但它根本上还是在做数据的加工和处理,数据的机器层次表示将直接影响到计算机的结构和性能。 在计算机中,采用数字化方式来表示数据,数据有无符号数和带符号数之分,其中带符号数根据其编码的不同又有原码、补码和反码3中表示形式。 阅读全文
posted @ 2018-03-04 19:51 十月十四 阅读(659) 评论(0) 推荐(0)
摘要:1.1 精度与基本数据类型运算的深度解析 我们在探讨Java基本数据类型时多次提到过精度的问题,那么计算机中的精度究竟是什么样的,为什么我们有时候的计算和我们预期的不同呢?下面我们通过精度来了解; 1.1.1 什么是精度,什么是单精度和双精度 百度百科:精度是表示观测值与真值的接近程度。在计算机中精 阅读全文
posted @ 2018-03-04 19:40 十月十四 阅读(1092) 评论(0) 推荐(0)
摘要:学习Java的朋友想来都是从HelloWorld学起的,那么想来都对main函数不陌生了,但是main函数究竟是怎么回事呢?main函数中的参数是做什么的呢?main函数为什么能作为程序的入口呢?可不可以存在多个main函数呢?下面我们就来对main函数进行一些深入的了解. 1.Java中的main 阅读全文
posted @ 2018-03-03 16:55 十月十四 阅读(570) 评论(0) 推荐(0)
摘要:编译器与Javac编译原理 在前文我们知道了Java是一种编译语言和解释语言,它的源代码经过编译器Javac编译为能够被JVM识别的二进制语言,然后JVM将其解释为能够被平台识别的机器语言。那么什么是编译器呢?编译器的作用是什么呢?Javac又是如何进行工作的?下面我们一一来认识了解。 1 编译器( 阅读全文
posted @ 2018-03-03 16:23 十月十四 阅读(282) 评论(0) 推荐(0)
摘要:1.1为什么要配置环境变量 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH。正确地配置这些环境变量,是能够顺利学习、开发的前提。而经常出现的问题是:我们能够按照提示一步一步地正确配置,但时间一长就忘了,出现了问题也无从下手。究其原因,就是对这 阅读全文
posted @ 2018-03-03 15:52 十月十四 阅读(323) 评论(0) 推荐(0)