自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jian_FH的博客

忍耐 努力

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

原创 一步步带你解析View的工作原理(一)

前言大三了。好久没有写博客了,之前学java时,一直将博客当做学习时的零散笔记本。而最近在看《安卓开发艺术探索》一书,想结合一些博客的阅读,对view的工作原理,进行一个梳理,总结。这个总结系列分为两方面的内容:1.介绍View的工作原理。2.介绍自定义View的实现方式。 学习View的工作原理,是为了更好的理解自定义view做准备的,我们要学的内容有:View的三大流程...

2018-09-19 21:13:37 635

原创 SQL:UPDATE

引号的使用 SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号UPDATE语句语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值Person: LastName FirstName Address City Gates

2017-12-04 14:00:18 309

原创 SQL:SELECT DINSTINCT

SQL SELECT DISTINCT 语句在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 关键词 DISTINCT 用于返回唯一不同的值。语法 SELECT DISTINCT 列名称 FROM 表名称使用 DISTINCT 关键词 SELECT Company FROM Orders“Orders”表: Company O

2017-12-04 13:14:26 1804

原创 SQL:DML&DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。查询和更新指令构成了 SQL 的 DML 部分: SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据

2017-12-04 13:08:13 240

原创 HAVING&WHERE

在where子句中,是不能用聚集函数作为条件表达式的,例如:SELECT Sno,AVG(Grade) FROM SC WHERE AVG(Grade)>=90 GROUP BY Sno上述语句是不对的。 正确的应是:SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade)>=90

2017-12-04 13:04:02 588

原创 多线程III----创建线程的第二种方式

/* 创建线程的第二种方式 实现Runnable接口 因为当一个类已经有父类 无法继承thread类时 考虑第二种方式 1,定义类实现runnable接口 2,覆盖接口中的run方法,将线程的任务代码封装到run方法中 3,通过thread类创建线程对象,并将runnable接口的子类对象作为thread类构造函数的参数进行传递。 为什么?因为线程的任务都封装在runnable接口子

2017-11-05 14:30:09 207

原创 多线程II----thread类中的方法

//Thread类中的方法&线程名称//getName()方法 返回线程的名称//CurrentThread()返回当前正在运行的线程。//super(name)忘thread类中传名字。class Demo14 extends Thread{ //private String name; Demo14(String name) { super(na

2017-11-05 14:28:41 302

原创 多线程I

/* 进程:正在进行中的程序 线程:就是进程中一个负责程序执行的控制单元(执行路径) 一个进程中可以多执行路径,称之为多线程。 一个进程中至少有一个线程 开启多个线程是为了同时运行多部分代码。 每一个线程都有自己运行的内容,这个内容可以称为线程要执行的任务。 多线程的好处:解决了多部分同时运行的问题。 多线程的弊端:线程太多回到效率的降低。 其实应用程序的执行都是cpu在做着快速的切换完成的。这

2017-11-05 14:27:45 255

原创 Object类----toString方法

/* 一般来说 object的子类一般都会覆写toString hashcode equals。 */class Person5{ private String name; private int age; Person5(String name,int age) { this.name = name; this.age = ag

2017-10-25 15:31:14 231

原创 object类----getClass方法

class Person5{ private String name; private int age; Person5(String name,int age) { this.name = name; this.age = age; }}public class GetClassDemo { public stat

2017-10-25 15:22:33 426

原创 Object类----equals方法与equals覆写

/* object:所有类的根类 object是不段抽取而来的,具有所有对象都具备的共性内容。 常用的共性功能: *//*class Fu //extends Object { Fu() { super(); }}class Zi extends Fu //子类并不继承object 因为java没有多继承 { Zi() {

2017-10-24 10:37:00 350

原创 异常----注意事项

/* 异常注意事项: 1,子类在覆盖父类方法时,如果父类的方法抛出了异常, 那么子类的方法只能抛出父类的异常或者该异常的子类。 2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。 简单说:子类覆盖父类只能抛出父类的异常或者子类或者子集。 注意:如果父类的方法没有抛出异常,那么子类覆盖绝对不能抛。就只能try。class AException extends Exception{

2017-10-23 21:31:17 242

原创 异常----应用与异常转换

/* 毕老师用电脑上课 问题中设计两个对象:毕老师 电脑 分析其中的问题: 比如电脑蓝屏啦 电脑冒烟啦 */class LangPingException extends Exception{ /** * */ private static final long serialVersionUID = 1L; LangPingException(

2017-10-23 20:55:12 537

原创 异常----finally代码块

class Demo2{ public int show(int index) { if(index < 0) throw new ArrayIndexOutOfBoundsException("越界啦!!"); int[] arr = new int[3]; return arr[index]; }

2017-10-23 15:09:10 363

原创 异常----多catch情况

//现在来讨论多catch情况class Demo15{ public int method(int[] arr,int index) throws NullPointerException,FuShuIndexException//进行多个声明 { //多个异常: if(arr == null) throw new NullPoi

2017-10-21 12:04:10 298

原创 异常----异常捕捉try&catch

/* 异常处理的捕捉形式: 这是可以对异常进行针对性处理的方式。 具体格式是: try { //需要被检测异常的代码 } catch(异常类 变量)//该变量用于接收发生的异常对象。 { //处理异常的代码 没catch没处理 } finally { //一定会被执行的代码 } */class FuShuIndexException exte

2017-10-21 11:28:21 341

原创 异常----RuntimeException与其他的一些区别以及throw与throws的区别

/* 异常的分类: 1,编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系。 这种问题一旦出现,希望在编译时就进行检测,让这种问题有对应的处理方式。 这样的问题都可以针对性的处理。 2,编译时不检测异常(运行时异常) 这种问题的发生,无法让功能继续,运算无法进行,更多是因为调用的原因导致的或者引发了内部状态的改变导致的

2017-10-19 10:57:44 1330

原创 异常----自定义异常

/* 对于角标是整数不存在,可以用角标越界来表示。 对于是负数的情况,我们不乐意用越界来表示, 而负数角标这种异常在java中并没有定义过。 那么就按照java异常的创建思想,面向对象,将负数角标进行自定义描述。并封装成对象。 这种自定义的问题描述成为自定义异常。 注意:如果让一个类继承异常类,必须要继承异常体系,因为只有成为异常体系的子类才有资格具备可抛型。 才可以被两个关键字操作:

2017-10-19 10:15:49 265

原创 异常----异常对象的抛出

class Demo{ public void method(int[] arr,int index) { if(arr == null) { throw new NullPointerException("数组的引用不能为空!"); } if(index >= arr.length)

2017-10-19 09:20:56 437

原创 异常----体系

/* 异常的体系: 因为代码可能出现的问题很多,因此我们可以考虑抽取他们的共性 如问题的名字、信息、位置等等,我们将共性向上抽取,就形成了异常体系。 最终问题(不正常情况)就分成了两大类。 Throwable(父类: 1,一般不可处理的。(用Error类来表示 特点:是由jvm抛出的严重性的问题。 这种问题发生一般不针对处理。直接修改程

2017-10-18 20:56:47 237

原创 异常----概述

/* 异常:是在运行时期发生的不正常情况。 在java中用类的形式对不正常情况进行描述和封装对象。 描述不正常的情况的类,就称为异常类。 以前正常流程代码和问题处理代码相结合, 现在将正常流程代码和问题处理代码进行分离。提高阅读性。 其实,异常就是java通过面向对象的思想将问题封装成了对象。 并用异常类对其进行描述。 不同的问题用不同的类进行具体的描述。比如角标越界,空指针等等。 */

2017-10-18 20:26:52 303

原创 对象的初始化过程

class Fu19{ Fu19(){ System.out.println("fu constructor run"); show(); } void show()//被覆盖,运行子类的。 { System.out.println("hehe"); }}class Zi19 extends Fu19{

2017-10-17 12:12:33 190

原创 匿名内部类----细节

class Outer8{ class Inner extends Object { public void show(){} } void method() { Object obj = new Object() { public void show() {

2017-10-17 11:22:22 262

原创 匿名内部类----应用

interface Inter6{ void show1(); void show2();}class Outer6{//非匿名内部类// class Inner implements Inter// {// public void show1() {// // }// public void show2() {

2017-10-17 10:56:15 251

原创 匿名内部类----概述

/* 匿名内部类。就是内部类的简写格式 必须有前提: 内部类必须继承或者实现一个外部类或者接口。 其实就是一个子类对象。 格式:new 父类or接口(){子类内容} */abstract class Demo5{ abstract void show();}class Outer5{ int num = 4;// class Inner ex

2017-10-17 10:30:50 190

原创 内部类----局部内部类

//内部类可以放在局部位置上class Outer3{ int num = 3; void method() { final int x = 9;//局部变量 class Inner3 { void show() { System.out.pri

2017-10-17 10:29:16 203

原创 内部类----细节

/* 为什么内部类能直接访问外部类中的成员? 那是因为内部类持有了外部类的引用。 外部类名.this */class Outer2{ int num = 3; class Inner2 { int num = 4; void show() { int num = 5;

2017-10-17 10:25:32 164

原创 内部类----概述

/*内部类访问特点:1,内部类可以直接访问外部类中的成员。2,外部类要访问内部类,必须建立内部类的对象。一般用于类的设计。分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。这时就是还有的事物定义成内部类来描述 */class Outer{ static private int num = 31; static class Inner

2017-10-17 10:15:36 159

原创 面向对象第三个特征----多态III(特点)

/* 多态时,成员的特点: 1,成员变量 编译时:参考引用型变量所属的类中是否有调用的成员变量,有,编译通过,没有,编译失败。 运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行所属的类中调用的成员变量。 简单说:编译和运行都参考等号的左边。 (非多态也是一样) 2,成员函数 编译时:参考引用型变量所属的类中是否有调用的函数,有,编译通过,没有,编译失败。

2017-10-17 10:13:40 255

原创 面向对象第三个特征----多态II(类型判断)

abstract class Animal{ abstract void eat();}class Dog extends Animal{ public void eat() { System.out.println("啃骨头"); } public void play() { System.out.println("玩球球");

2017-10-01 17:05:31 303

原创 面向对象的第三个特征----多态I

/* 多态: 某一种事物的多种存在形态。 class 动物 {} class 猫 extends 动物 {} class 狗 extends 动物 {} 一个猫对象,存在了多种形态: 动物 x = new 猫();//一个对象,两种形态。 父类创建的,指向了子类的对象。 猫这类事物,既具备了猫的形态,又具备了动物的形态, 这就是对象的多态性。 简单说,就是一个对象对应着不同类型。 多态

2017-10-01 16:53:29 204

原创 接口----应用

//笔记本电脑/*鼠标的使用class Mouse{}public class InterfaceDemo3 { public static void main(String[] args) { useMouse(new Mouse()); } public static void useMouse(Mouse m) { m.open();

2017-09-30 22:07:24 278

原创 接口----细节

/* 一个类在继承另一个类的同时,还可以实现多个接口。 接口的出现,避免了单继承的局限性。 */interface A{ public void show();}interface B{ public void show();}class Q{ public void method() { }}class DemoImpl2 extend

2017-09-30 20:05:50 199

原创 接口----多实现

/* 在java中不直接支持多继承,因为会出现调用的不确定性。 所以java将多继承机制进行改良,在java中变成了多实现。 一个类可以实现多个接口。 为什么可以? 因为接口中的方法没有方法体,而继承中方法有方法体。 */interface A{ public void show();}interface B{ public void show();}/*另

2017-09-30 19:46:23 1193

原创 接口----实现

/*类与类之间是继承关系,类与接口之间是实现关系。接口和抽象类之间,有啥不同?抽象类中的成员不一定都是抽象的,例如我们之前做的雇员建模,里面的非抽象成员,我们是可以直接拿来用的。而接口中的成员都是抽象的。我们得全部覆盖,即类对于接口的实现。*//* 接口不可以实例化。 只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。 否则,这个子类就是一个抽象类。 */inte

2017-09-28 19:33:50 227

原创 接口----定义

abstract class AbsDemo{ abstract void show1(); abstract void show2();}/* 当一个抽象类中的方法都是抽象的时候, 这时可以将该抽象类用另一种形式定义和表示。 即接口 interface。 定义接口使用的关键字不是class,而是interface。*//*对于接口当中常见的成员:(而且这些成员都有

2017-09-28 19:12:45 256

原创 抽象类----数据建模练习

/* 雇员示例: 需求:公司中程序员有姓名,工号,薪水,工作内容。 项目经理有姓名,工号,薪水,工作内容,奖金。 对给出的需求进行数据建模。分析:程序员: 属性:姓名,工号,薪水。 行为:工作。经理: 属性:姓名,工号,薪水,奖金。 行为:工作。分析二者是否有直接继承关系。若经理继承程序员,则继承了程序员的所有功能,但是工作内容是不同的。因此,二者没有直

2017-09-28 18:56:44 2782

原创 抽象类

/* 抽象类:笼统,模糊,不具体! 特点: 1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。 抽象方法必须定义在抽象类中。该类必须也被abstract修饰。 2,抽象类不可以被实例化。为什么?没意义,没有方法体。 3,抽象类必须有其子类覆盖了所有的(所有)抽象方法后,该子类才可以实例化。 否则,这个子类还是抽象类。 1,抽象类中有构造函数吗?

2017-09-26 00:11:41 216

原创 final关键字与继承的弊端

/* final关键字: 1,final是一个修饰符,可以修饰类,方法,变量。 2,final修饰的类不可以被继承。(最终类) 3,final修饰的方法不可被覆盖。 4,final修饰的变量是一个常量,只能赋值一次。 5,用final修饰的变量通常前面加static。 */class Fu3{ void method() { //假如是很关键的方法 调用

2017-09-25 11:43:41 308

原创 面向对象第二个特征----继承III(子父类中构造函数初始化过程2)

class Fatherba{ Fatherba() { super(); show(); return; } void show() { System.out.println("fu show"); }}class Son extends Fatherba{ int nu

2017-09-25 10:45:23 314

空空如也

空空如也

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

TA关注的人

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