自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mrbacker的博客

冰冻三尺

  • 博客(44)
  • 收藏
  • 关注

原创 计算两个日期的相隔天数

使用库函数可以计算两个时间的毫秒差值,在转换成天数就可以了。public class CalDays { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print(calDay(2008, 3, 4, 2001, 5, 23)); } public ...

2019-02-25 20:05:52 932

原创 综合案例:宠物商店

建立宠物商店,里面可以进行要销售宠物的上架、下架、关键字查询。宠物的信息只需要:名字、年龄、颜色。那么此时对应的关系:一个宠物商店有多种宠物。建立宠物标准:interface Pet { public String getName(); public String getColor(); public int getAge();}宠物商店只关注于宠物的标准,而...

2018-12-23 22:50:00 3951 1

原创 链表

链表的基本介绍要想保存多个对象,首先的方法是对象数组,同时如果该数组可以保存任意对象,那应该是Object型的数组。Object[] data = new Object[3];。但是数组是定长的线性结构。如果数据的数量不确定,那就很难用数组来表示了。类似火车的车厢的设计模式,动态的进行车厢的挂载,那么假设每一节车厢只保留一个数据,并不受内存的限制,就可以证明解决了数据的长度问题。火车车厢不能只...

2018-12-23 22:00:45 372

原创 异常的捕获和处理

几乎所有的代码都可能产生异常,所以为了保证程序出现异常之后可以正常执行完毕,就需要进行异常处理。异常的影响异常是导致程序中断执行的指令流。但是程序之中如果出现异常并且没有合理处理的话,就会导致程序终止执行。范例: 没有异常产生的程序public class TestDemo { public static void main(String[] args) { System.out....

2018-12-20 22:53:19 4330

原创 单例设计模式

所谓的单例设计模式指的是一个类只允许产生一个实例化对象。单例设计模式范例: 一个简单程序class Singleton { public void print() { System.out.println("Hello world !"); }}public class TestSingleton { public static void main...

2018-12-18 21:34:59 213

原创 jar命令

电脑中往往会将许多的相关联的文件放到压缩文件里面,实际上jar也是一种压缩文件,只不过里面保存的都是 *.class 文件,也就是说如果现在要实现某一个功能模块,可能有几百个类,那最终交付给用户使用的时候为了方便管理,就会将这些文件形成一个压缩包提供。在JDK之中提供有实现jar文件操作的命令,输入jar就可以了。对于此命令有几个常用参数:“c”:创建新档案;“f”:指定档案文件名;“v...

2018-12-18 01:07:11 190

原创 访问控制权限

已经知道的private就属于一种访问控制权限,而这种访问控制权限只是封装的一部分,在Java里面提供有4种访问控制权限:private、default、protected、public,而这四种控制权限定义如下:No.范围privatedefaultprotectedpublic1同一包中的同一类√√√√2同一包中的不同类√√√3不...

2018-12-18 00:44:35 292

原创 包的定义与使用

包的本质实际上就属于一个文件夹。在任何的项目里面很难避免重复的类名出现,而且如果所有的*.class文件都存放在一个目录之中,那么就有可能出现覆盖的情况。所以Java程序都应该保存在各自的目录里面,而这个目录则成为包。包的定义如果要想进行包的定义,只需要在*.java源文件的第一行编写:package 包名称即可。package cn.isohard.msg;public class He...

2018-12-17 01:38:55 564

原创 包装类

Object可以接收所有的应用数据类型,这其中又出现一个新问题,数据类型分为基本类型和引用类型,那基本数据类型怎么处理呢?包装类的基本原理所谓的包装类指的就是将基本数据类型封转到一个类中,如下的一个类:class MyInt { private int num; public MyInt(int num) { this.num = num; } public int intVal...

2018-12-16 15:47:08 153

原创 Object类

Object类是Java默认提供的一个类,可以这么说,Java里面除了Object类之外,所有的类都是存在有继承关系的。默认会继承Object父类,也就是说以下两种类定义是完全相同的。class Message {}class Message extends Object {}那么也就是证明所有的类对象都可以使用Object接收。class Message {}class Perso...

2018-12-14 22:05:07 207

原创 匿名内部类

在学习匿名内部类之前,先学习一个小例子。范例: 观察程序问题interface IMessage { public void print();}class MessageImpl implements IMessage { public void print() { System.out.println("Hello"); }}public class TestDemo {...

2018-12-14 21:50:06 155

原创 接口的定义与使用

抽线类与普通类相比最大的特点是约定了子类的实现要求,但是抽象类有一个缺点:单继承,如果要想约定子类的实现要求以及避免单继承的局限就需要使用接口。设计中可以使用抽象类和接口,接口优先选择。接口的基本概念接口就是一个抽象方法和全部常量的集合,在Java中可以使用interface关键字来进行定义。范例: 定义一个接口//因为接口和类的定义命名要求相同,所以为了区分//建议在接口前面追加一个字...

2018-12-11 23:10:11 820

原创 抽象类的定义与使用

在以后所有的进行的项目开发之中,不要出现一个类去继承一个已经实现好的类,而只能继承抽象类和接口。对象多态性的核心本质在于方法的重写,那么如果现在子类没有去进行指定方法的重写,这样的操作就有些不合要求的。所以如果要对子类的方法进行一些强制的要求就必须采用抽象类来解决。抽象类的基本概念抽象类只是在普通类的基础上扩充了一些抽象方法而已。所谓的额抽象方法指的是只声明而未实现(没有方法体)的方法,所有...

2018-12-11 00:06:05 535

原创 多态性

知道了关于继承的所有概念,但是并不意味着只要使用继承就可以实现代码的全部重用,而在继承之后又有了一个重要的概念:多态性。在Java里面对于多态的核心的表现主要有以下两点:方法的多态性:方法的重载:同一个方法名称可以根据参数的类型及个数的不同调用不同的方法体;方法的重写:同一个父类的方法,可能根据实例化的子类不同也有不同的实现。对象的多态性(前提:方法重写):【自动】对象的...

2018-12-10 23:31:16 177 1

原创 final关键字

在Java中final被称为终结器,可以使用final来定义类、方法、常量。使用final定义的类不能有子类。public final class String使用final定义的方法不允许被子类重写。使用final定义的变量就成为了常量,常量必须在声明时赋值,并且不允许修改。 如果要定义常量,往往会使用public static final来定义全局常量。而且常量的标识符必须采用大写字母的...

2018-12-09 00:15:04 197

原创 数组操作

现在定义一个数组(整形数组)的操作类,在这个类中有几个要求:数组的大小由类创建对象的时候动态决定;可以通过类向数组中进行数组的保存,保存的时候需要考虑到数组的大小问题;如果发现数组空间不足,则可以进行数组长度的动态扩充;可以取得数组的全部数据(增加顺序)。而后在这一基础上要求继续扩展两个派生类:可以进行数组的排序处理;可以进行数组的反转处理。定义Array类在Array类...

2018-12-05 00:37:46 549

原创 覆写

清楚了继承的基本概念,此时就可能出现一种情况,如果子类定义了父类相同的方法或属性,这就成为覆写。方法的覆写方法的覆写是子类定义了与父类方法名称、参数类型及个数完全相同的方法,但是被覆写的方法不能够拥有比父类更为严格的访问控制权限。范例: 简单的方法覆写class Person { public void printInfo() { System.out.println("【Perso...

2018-12-01 00:15:55 560 1

原创 继承的定义与使用

面向对象的第二大特点就是继承:继承的主要作用在于已有的基础上继续进行功能的扩充。继承问题的引出如果要想更好的解释继承的作用,按照之前学习到的概念来定义两个类:人、学生。那么现在的定义效果如下:Person类class Person { private String name; private int age; public void setName(String name) {...

2018-11-27 00:28:53 425

原创 内部类的定义和使用

对于内部类的定义使用暂时不作为首要类设计原则。

2018-11-25 23:16:42 2377

原创 代码块

代码块是一个不重要的概念,但是作为结构清楚一下就可以了。所以的代码块指的是使用了“{}”定义的一段程序代码,代码块根据其定义的位置以及声明的关键字的不同一共可以分为四类:普通代码块、构造块、静态块、同步代码块。普通代码块普通代码块指的是定义在方法中的代码块。范例: 观察一个简单程序public class TestDemo { public static void main(String...

2018-11-25 18:00:21 156

原创 static关键字

在所有定义的方法和属性上实际上都可以使用static关键字。static属性范例: 定义一个人的类,并设置他的国家// epi 42 time 15:00class Person { private String name; private int age; String country = "中国"; //为了后面操作方便,暂时不封装 public Person(String...

2018-11-20 00:04:21 214

原创 数据表与简答Java类(角色与权限)

进行单独类的描述class Dept { //部门信息 private int did; private String dname; public Dept(int did, String dname) { this.did = did; this.dname = dname; } public String getInfo() { return "【部门】did =...

2018-11-19 22:36:06 252

原创 数据表与简单Java类(多对多)

定义一个学生选课的操作表:三张数据表学生表:学生编号、姓名、年龄;课程表:课程编号、课程名称、学分;学生-课程关系表:学生编号、课程编号、成绩。要求:可以实现如下的信息输出:可以找到一门课程,以及参加此课程的所有的学生信息,和他的成绩可以根据一个学生,找到所参加的所有课程和每门成绩。定义出基本类,暂时不考虑所有的关系...

2018-11-19 17:41:19 404

原创 数据表与简单Java类(一对多)

假设有两张数据表:emp、dept:emp表: empno、ename、job、sal、comm、mgr、deptno;dept表:deptno、dname、loc。要求可以通过程序描述出如下的对应关系:一个部门有多个雇员,并且可以输出一个部门的完整信息(包括雇员信息);可以根据一个雇员找到雇员对应的领导信息和雇员所在部门的信息。实际开发中的简单Java类的设计原则,通过简单的...

2018-11-16 23:41:14 653

原创 引用传递实际应用

引用传递可以说是Java的核心,也正是因为引用传递,所以可以更好的表现出现实世界的抽象。例如,现在要求描述出这样的一种关系:一个人有一辆汽车或没有汽车。很明显,现在应该是有两个实体类,人(Member)和车(Car)。范例: 现在可以得出如下的设计class Member { private String name; private int age; private Car car; ...

2018-10-24 23:51:43 190

原创 Java中对象比较

如果现在要想确定两个对象是否相等,那么应该比较的是对象的完整信息,而对象的完整信息就是对象的属性,所以所谓的对象比较指的就是两个对象的属性进行比较。对象比较的实现形式一class Person { private String name; private int age; public Person(String name, int age) { this.name = name;...

2018-10-24 23:05:55 4838

原创 引用传递进阶分析

引用传递是Java的整体核心,如果不懂引用传递,基本上所有的代码都无法进行正常分析。三个引用传递分析例子。范例: 第一个引用传递分析class Message { private int num; public void setNum(int num){ this.num = num; } public int getNum() { return this.num; }}...

2018-10-24 22:44:31 147

原创 this关键字

this关键字可以做三件事情:调用本类属性调用本类方法(普通、构造)表示当前对象使用this表示本类属性范例: 简单例子class Person { private String name; private int age; public Person(String n, int a) { name = n; age = a; } public String ...

2018-10-23 23:52:06 208

原创 String类的常用方法

开发中String必用,而且只依靠String类的基本概念根本无法满足开发需求,所以要求必须熟练掌握String类的方法。所有的String类的方法都可以通过javadoc查到。任何一个类的文档如以下几部分组成:类的相关定义,包括这个类的名字,有哪些父类,哪些接口;类的相关简介,包括一些基本的使用;成员(Field)摘要:属性就是一种成员,会列出所有出现的成员信息;构造方法(Const...

2018-10-21 16:38:26 506

原创 String类的基本特点

几乎所有的项目开发过程之中都一定会存在String类的使用,但是String本身的定义有一些差别,以及在使用上是有一些注意事项的。String类两种实例化方式String可以直接采用赋值的形式进行处理,这一点感觉上和基本数据类型是非常相似的。范例:直接复制实例化对象public class StringDemo { public static void main(S...

2018-10-20 20:24:12 362

原创 Java中数组的定义与使用(三)

数组排序在很多的面试题上都会出现数组排序的操作形式。但是这个时候你千万别写上:java.util.Arrays.sort(数组)。而这种排序都是以升序为主。1、基础的排序操作:范例:冒泡排序public class ArrayDemo { public static void main(String args[]) { int data[] = ne...

2018-09-04 13:09:11 4644 5

原创 Java中数组的定义与使用(二)

数组与方法调用数组是一个引用数据类型,那么所有的引用数据类型都可以为其设置多个栈内存指向。所以在进行数组操作的时候,也可以将其通过方法进行处理。范例:方法接受数组public class ArrayDemo { public static void main(String args[]) { int data[] = new int[] {1, 2,...

2018-09-01 23:26:15 5097 1

原创 Java中数组的定义与使用(一)

如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下:int i1, i2, i3, ... i100;但是这儿时候如果按照此类方式定义就会非常麻烦,...

2018-09-01 00:05:13 965336 32

原创 简单Java类

现在假设有这样一个要求,定义一个雇员类,该类会包含雇员编号、姓名、职位、基本工资、佣金几个属性信息。 这种类称为简单Java类,既然是简单Java类就有自己明确的开发要求:类名称应该有意义,可以明确的描述出某一类事物,例如:Emp、Member、Dept、Dog、Cat;类中所有的属性必须使用private封装,所有属性必须提供有setter、getter方法; 类中可以定义若干个构造...

2018-08-13 22:23:34 777 1

转载 简单gdb调试

1. 开启core,采集程序奔溃的状态 $ulimit -c如果是0表示没有开启,则需要开启 $vi /etc/profile在末尾添加以下两行保存 #No core files by default 0, unlimited is oo ulimit -S -c unlimited > /dev/null 2>&1继续修改...

2018-03-30 15:56:01 210

原创 牛客网剑指Offer题解C++ (3/10)

一、调整整数数组使奇数位于偶数前面题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。算法思想这题我的想法是遍历数组,遇到偶数就将该偶数后面的前移移位,并将该偶数移到最后面,给一个值标记第一个偶数移的位置,当遍历到第一个偶数就完成了。cla...

2018-03-28 18:17:14 385

原创 牛客网剑指Offer题解C++ (2/10)

一、斐波那契数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39算法思想第一第二的数都是1,后面的数都是前两个数的和。其实也可以用递归实现。class Solution {public: int Fibonacci(int n) { int f1, f2, f3; f...

2018-03-28 18:16:38 379

原创 Java private实现封装处理

面向对象之中有三大主要特征:封装、继承、多态,对于封装是Java中最复杂的概念,本次所写的只不过是几个基本概念而已。如果是想清楚封装,首先必须清楚如果没有封装会怎么样。范例:观察如下一段程序class Person { String name; //名字 int age; //年龄 public void info() { System.o...

2018-03-27 19:21:39 2190 2

原创 Java类与对象

面向对象简介面向对象是一种程序的设计,但是并不表示世界上所有的开发者都认同面向对象。因为有很多的开发者认为面向对象过于复杂,所以更多的人愿意使用函数式编程。面向对象的前身属于面向过程,如果要先笼统的去解释这两种开发模型的区别,最好的例子:面向过程是解决问题,而面向对象是模块化设计。对于现在的程序开发更多情况下就像是汽车组装一样,不同的工厂生产不同的配件。将所有的零件组装在一起,就可以形成一...

2018-02-17 01:35:27 667 1

原创 牛客网剑指Offer题解C++ (1/10)

题目地址一、二维数组中的查找题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。算法思想首先在二维数组的第一行的数与这个整数比较,找到比这个整数大的位置的前一个位置,如果都比这个整数小,则这个位置就是第一行的最后一个位置。确定第一行的位置,就从这...

2018-01-29 22:27:45 380

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除