![](https://img-blog.csdnimg.cn/2019090223594865.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
野生杂学家阿博
发现问题,解决问题,总结反思。
展开
-
Java笔记44——字符串(String)判断是否为空
前言在实际Java开发当中,我们肯定要判读字符串是否为空的需求。今天遇到一个比较奇葩的问题,我们公司服务器接口明明返回时空字符串给我,可是我用传统的方法去判断就是不为空的情况。复现一下问题if(str !=null || str.length > 0 || !"".equals(str) || !str.isEmpty()){ System.out.println("字符串不为空!...原创 2018-12-17 17:07:24 · 502 阅读 · 0 评论 -
Java笔记34——程序异常
前言在程序开发当中难免会遇到程序的错误和异常,在这里给小伙伴分享我对Java语言的异常处理机制的理解。异常概述 程序异常是指在程序的运行过程中所发生的不正常的事件,如:文件找不到、网络连接失败、非法参数等。它会中断正在运行的程序Java编程语言使用异常处理机制为程序提供了错误处理的能力。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Thro原创 2017-12-23 20:17:08 · 321 阅读 · 0 评论 -
Java笔记33——接口和抽象类
前言在Java面向对象语言当中,我们会用到接口。那么什么是接口呢?这里给小伙伴分享的就是Java中的接口。接口接口是Java的一些方法特征的集合,在接口中只包含常量和抽象方法。接口的实现接口的语法规则 接口是使用interface修饰,示例:public interface 接口名{}public interface Runnale{},public interface IJump{}类实现接口原创 2017-12-01 17:44:20 · 254 阅读 · 0 评论 -
Java笔记32——面向对象之多态
前言前面给小伙伴们分享的是面向对象的封装、继承,这里给大家分享是Java面向对象三个特性最后一个多态。什么是多态呢?多态父类的引用指向子类的对象。他们一定存在继承关系。只有方法具有多态特征,属性没有多态。实现多态的条件要有继承;要有重写;父类的引用指向子类的对象。向上转型。实现多态的技术实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所有引用对象的实际类型,原创 2017-12-01 15:43:34 · 254 阅读 · 0 评论 -
Java笔记31——面向对象之继承
前言前面给小伙伴的分享了面向的对象的封装,这里我给大家分享的是面向对象的继承,继承是我们在开发当中很经常用到的。什么是继承呢?继承继承是面向对象的第二特征,它的定义是从已有的类派生出新的类,新的类能吸收已有的类属性和行为,并能拓展新的能力。继承是Java面向对象技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。继承的实现在Java语言中继承使用exten原创 2017-12-01 14:41:37 · 245 阅读 · 0 评论 -
Java笔记30——面向对象之封装
前言前面我给小伙伴们分享了面向对象的基础,这里给大家分享的是面向对象的核心思想之一——封装。什么是封装封装又叫隐藏实现。就是隐藏属性,方法和方法实现细节的过程称为封装。它指的是将对象的状态信息隐藏在对象内容,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。隐藏属性将所有的属性私有化,如果需要访问要通过get和set访问器。隐藏方法只通过对外接口,具体实现方法原创 2017-11-30 23:26:57 · 187 阅读 · 0 评论 -
Java笔记29——面向对象基础
前言Java是面向对象的语言,在学习它之前我们需要了解什么东西呢?这篇博客中我将为小伙伴们介绍一下面向对象之前必须了解的知识。构造方法构造方法的定义构造方法是一种特殊的方法,它是一个与类同名没有返回值类型的方法。对象的创建就是通过构造方法来完成的,它的主要功能是完成对象的初始化。当类的实例化一个对象时会自动调用构造方法。构造方法是一种特殊的成员方法,它的特殊性反映在下面的几个方原创 2017-11-30 23:08:15 · 189 阅读 · 0 评论 -
Java笔记22——字符串String
前言字符串在Java编程中广泛的应用到,在Java中字符串属于对象,Java提供了String来创建和操作字符串。字符串可以分为两个部分,字符和字符串。字符Java用char类型来表示字母、数字、标点符号以及其他特殊字符。Java基于Unicode4.0来表示每一个字符,Unicode的设计目标是容纳世界上所有主要语言中的字符。Java使用16位即2个字节来表示字符,这意味着Java可以表示2^16原创 2017-11-16 23:05:10 · 303 阅读 · 0 评论 -
Java笔记17——循环结构
前言顺序结构的程序语句只能被执行一次。如果想要同样的操作执行多次,就要使用程序的循环结构。Java的循环结构Java主要有三种循环结构:while循环do…while循环for循环 但是在Java5的时候引入了一种主要用于数组的增强型for循环。while循环while是最基本的循环,它的语法结构为:while( 布尔表达式 ) { //循环内容}只要布尔表达式为 true,循环体会原创 2017-11-05 13:55:49 · 415 阅读 · 0 评论 -
Java笔记35——集合框架
集合框架的概述 集合框架是Java的容器类,专门用来装载对象,基本数据类型会转变为包装类。集合框架的作用在类的内部,对数据进行组织;简单而快速的搜索大量的条目;有的集合接口,提供一系列排序的元素,并且可以在序列中间快速的插入或者删除元素;有的集合接口,提供映射关系,可以通过关键字(key)快速的查找到对应的的唯一对象,而这个关键字可以使任意类型。集合框架和数组的对比数组的特点:长度是原创 2017-12-23 22:51:36 · 189 阅读 · 0 评论 -
Java笔记16——instanceof 运算符
instanceof 运算符instanceof 运算符主要用作操作对象实例,检查对象是否是一个特定类型(类类型或接口类型)。instanceof运算符的使用格式 ( Object reference variable ) instanceof (class/interface type)如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果原创 2017-11-05 12:43:41 · 308 阅读 · 0 评论 -
Java笔记15——Java运算符优先级
Java运算符优先级当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。 例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。 再如,x = 7 + 3 * 2;这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所原创 2017-11-05 12:39:43 · 306 阅读 · 0 评论 -
Java笔记14——条件运算符
条件运算符(?:)条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。 variable x = (expression) ? value if true : value if false代码实例public class Test { public static void main(String[] args){原创 2017-11-05 12:33:03 · 293 阅读 · 0 评论 -
Java笔记43——计算机网络协议
什么是计算机网络把分布在不同的地理区域的计算机与专门的外部设备用通信线路互相连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据等信息资源。计算机网络的主要功能资源共享信息传递和集中处理均衡负荷与分布处理综合信息服务(www/综合业务数字网络 ISDN)什么是网络通信协议计算机网络中实现通信必须有一些约定即建立通信工...原创 2018-02-27 21:10:40 · 949 阅读 · 0 评论 -
Java笔记42——内部类
前言Java的类渗透Java编程,在这里和大家分享Java的内部类。内部类在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。 广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类成员内部类是最普通的内部类,它的定义为位于另一个来类的内部。 代码示例://外部类public class{ ...原创 2018-02-27 21:08:02 · 161 阅读 · 0 评论 -
Java笔记41——文件操作(IO流)
前言前面给小伙伴们分享了我理解的Java多线程,这里给大家分享一下我理解的IO流(文件操作)。IO流在编程开发中,我们会经常使用到。IO流的体系很庞大仔细区分有16种,但是我们可以理解成字节流和字符流。IO流概述IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数据传输,Java对于数据的操作都是通过流实现,而Java用于操作流的对象都在IO包中。...原创 2018-02-27 21:05:39 · 234 阅读 · 0 评论 -
Java笔记40——多线程的实现方式
前言上一篇博客,我跟小伙伴们分享了Java多线程。下面我跟大家分享的是Java多线程的实现方式。多线程的实现Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种方式是带返回值的。第一种:继承Thread类原创 2018-01-20 20:30:32 · 180 阅读 · 0 评论 -
Java笔记39——多线程(并发)
前言Java中的多线程是每一个Java作为底层开发语言的开发人员都应该懂得。深入了解Java线程会发现其实Java线程是很广阔的领域,多线程是Java线程的入门。那么现在我给小伙伴们分享一下自己对Java多线程的一些见解。关于线程的术语进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)线程:同一类原创 2018-01-20 19:20:09 · 272 阅读 · 0 评论 -
Java笔记38——集合框架之Map接口
前言前面给小伙伴们,分享了集合框架的List、Set接口,接下来就是集合框架的最后一个Map接口了。Map接口Map是一个key-value的形式存在的,key不可以重复,并且只能关联一个value。常用方法put(Key,value);//将一组键值对放入Map中。get(Key);//从Map中将key的value拿出来。containsKey(Object Key); //是否包含某个元素原创 2018-01-15 23:26:26 · 221 阅读 · 0 评论 -
Java笔记37——集合框架之Set接口
前言前面给小伙伴们分享了集合框架的List接口,下面分享的是Set接口。Set接口 Set是一种不包含重复元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。很明显,Set的构造函数有一个约束条件,传入的Collection参数不能包含重复的元素。Set接口特点 无序,不重复原创 2018-01-02 17:59:29 · 161 阅读 · 0 评论 -
Java笔记36——集合框架之List接口
前言前面给小伙伴们分享了Java的集合框架,接下来给大家分享的是List接口。List接口List是有序的Collection,使用此接口能够精准的控制每一个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素。原创 2017-12-26 17:23:37 · 152 阅读 · 0 评论 -
Java笔记13——赋值运算符
赋值运算符赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数。Java支持的常用的运算符代码实例public class Test { public static void main(String[] args) { int a = 10; int b = 20; int c = 0; c = a + b;原创 2017-11-05 11:32:12 · 297 阅读 · 0 评论 -
Java笔记12——逻辑运算符
逻辑运算符逻辑运算符的基本运算,假设布尔变量A为真,变量B为假 上面是常用到的逻辑运算符,在程序判断的时候是最常用到的,合理的利用能减少条件判断的代码。代码实例public class Test { public static void main(String[] args) { boolean a = true; boolean b = false; Sys原创 2017-11-05 11:24:27 · 316 阅读 · 0 评论 -
Java笔记24——数组
前言数组无论在哪种编程语言中都算是最重要的数据结构之一,同时不同的语言的实现及处理也不尽相同。只要是写过程序的人都知道数组的价值和重要性,与链表一道,数组成为了基本数据结构。Java提供了很好的集合API和集合类如:ArrayList、HashMap,他们都是基于数组。Java中的数组同一个类型数据的集合。其实数组就是一个容器。运算的时候有很多数据参与运算,那么首先需要做的是什么。不是如何保存这些数原创 2017-11-18 13:37:57 · 205 阅读 · 0 评论 -
Java笔记23——StringBuffer和StringBuilder类
前言当对字符串进行修改的时候,我们需要用到StringBuffer和StringBuilder类。和之前的String不一样,StringBuffer和StringBuilder类的对象能够被多次修改,并且不产生新的未使用的对象。StringBuffer类StringBuffer类是线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列原创 2017-11-17 18:41:21 · 270 阅读 · 0 评论 -
Java笔记20——Number & Math 类
前言一般当我们需要使用数字的时候,我们通常会使用内置的数据类型,如:byte、int、long、double等等。那么我们Java中有两个和数字有关的类,它们分别是Number&Math类。这篇博客给大家介绍它们。Number类所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。 图中是表示抽象Number类的所有子类,这个原创 2017-11-07 23:25:36 · 299 阅读 · 0 评论 -
Java笔记19——分支结构
前言顺序结构是只能按顺序执行的,不能进行判断和选择,因此需要分支结构。程序也是有不同的道路,我们就是建立分叉路口的人。Java的分支结构Java有两种分支结构:if语句switch语句if语句一个if语句包含一个布尔表达式和一条或多条语句。语法if语句的用法:if(布尔表达式){ //如果布尔表达式为true将执行的语句}如果布尔表达式值为true,则执行if语句中的代码块,否则执行原创 2017-11-06 22:17:48 · 475 阅读 · 0 评论 -
Java笔记18——循环结构之跳转语句
break关键字break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。 break 跳出最里层的循环,并且继续执行该循环下面的语句。语法break 的用法很简单,就是循环结构中的一条语句: break;代码示例public class Test { public static void main(String args[]) { int [] numb原创 2017-11-06 20:50:19 · 623 阅读 · 0 评论 -
Java笔记5——基础语法
前言每一种语言都有自己的语法,这篇博客中我将为大家介绍Java的基础语法。希望对刚开始学习的看官有帮助。Java基础语法概念一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。涉及到的东西1.对象 对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。2.类原创 2017-10-29 11:55:31 · 281 阅读 · 0 评论 -
Java笔记4——数据类型之类型转换
前言在Java编程中,我们会经常遇到数据类型转换。那什么是数据类型转换呢?他的转换规则是怎么样的呢?在这篇博客将为各位看官介绍数据类型的转换,希望能对大家学习技术有帮助!数据类型转换1.自动类型转换; 2.强制类型装换; 3.隐含强制转换;1.自动类型转换必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样fl原创 2017-10-29 11:24:07 · 330 阅读 · 0 评论 -
Java笔记3——数据类型之引用数据类型
前言接着上一篇博客,继续为大家讲一下我理解的引用型数据类型。引用数据类型1.在Java中,引用类型的变量是类似于C/C++的指针(虽然我没学过C语,但是以后学习的时候也是会接触到的)。引用类型纸箱一个对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Player、Dog 等。变量一旦声明后,类型就不能被改变了。引用数据类型的分类引用数据类型有三类: 1.数组,默认值为null;原创 2017-10-29 10:49:21 · 245 阅读 · 0 评论 -
Java笔记1——搭建JDK开发环境和配置环境变量
前言开发任何一个程序都需要搭建开发环境和配置环境变量,希望这篇博客对刚开始学习编程的朋友有帮助。搭建步骤1.下载JDK下载网站:http://www.oracle.com/ 这个网站是下载JDK的地方,大家可以点击这个网站进去下载。 2.开始安装JDK 这里可以修改安装的目录,修改安装的目录如下图所示: 确定之后,单击“下一步”。 注意:当提示JRE时,可以选择不安装。3.配置环原创 2017-10-24 23:04:42 · 1040 阅读 · 1 评论 -
Java笔记25——多维数组
前言上一篇博客给小伙伴们分享了Java中的数组,最后的总结中我有提到多维数组,那么这篇博客,我给小伙伴们分享一下我对多维数组的理解。多维数组多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组例如:String str[][] = new String[3][4];多维数组的动态初始化(以二维数组为例):1. 直接为每一维分配空间,格式如下:type arr原创 2017-11-18 13:52:36 · 369 阅读 · 0 评论 -
Java笔记26——Arrays类
前言前面我给小伙伴们分享了数组,那么这篇博客中我给小伙伴们分享的是JavaAPI中Arrays类,它属于java.util包中。Arrays类java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。Arrays类的功能给数组赋值:通过fill方法。对数组排序:通过sort方法,按升序。比较数组:通过equals方法比较数组中的元素是否相等。查找数组元素:通过bina原创 2017-11-18 14:04:41 · 211 阅读 · 0 评论 -
Java笔记11——位运算符
位运算符表示在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。 (1)正数的最高位为0,其余各位代表数值本身(二进制数)。 (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。位运算符Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。原创 2017-11-04 20:40:42 · 197 阅读 · 0 评论 -
Java笔记10——关系运算符
前言Java的关系运算符在条件判断的时候经常用到,那么关系运算符有哪些呢?下面为大家介绍Java的关系运算符。关系运算符下面表格中的实例整数变量A的值为1,变量B的值为2: 代码实例public class Test { public static void main(String[] args) { int a = 10; int b = 20; System.o原创 2017-11-04 20:32:26 · 252 阅读 · 0 评论 -
Java笔记9——算术运算符
算术运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。 举例下面表格中的实例假设整数变量A的值为10,变量B的值为20: 代码实例public class Test { public static void main(String[] args) { int a = 10; int b = 20; int c = 25;原创 2017-11-04 20:22:04 · 295 阅读 · 0 评论 -
Java笔记8——修饰符
前言前面的博客中有提到Java的修饰符,Java编程当中的变量和方法一般都是带修饰符的。那么这篇博客给大家介绍一下Java的修饰符。Java修饰符Java有很多修饰符,主要分为两类:访问修饰符非访问修饰符 修饰符用来定义类、方法或者变量,通常放在语句的最前端。访问控制修饰符Java中,可以通过使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4中不同的访问权限。 - de原创 2017-11-04 19:49:01 · 284 阅读 · 0 评论 -
Java笔记7——变量类型
前言上一篇博客中,我给大家介绍了类的类型,那么这篇博客我再给大家介绍一下我对变量的类型的认知。Java变量类型在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:type identifier [ = value][, identifier [= value] ...] ;格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。原创 2017-11-04 18:38:33 · 242 阅读 · 0 评论 -
Java笔记27——日期时间
前言在使用Java作为底层语言进行开发时,我们会遇到需要获取当前日期和时间。遇到这个需要时不要慌,Java为我们提供了Date类,它封装了当前的日期和时间。Java日期和时间java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。 第一个构造函数使用当前日期和时间来初始化对象。Date()第二个构造函数接收一个参数,该参数是从197原创 2017-11-18 14:47:26 · 231 阅读 · 0 评论