![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java-SE
Android开发笔记
记录Android开发相关。
展开
-
static关键字
1、为什么要使用static关键字 我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量。 2、类属性、类方法的设计思想 类属性(类变量)作为该类各个对象之间共享的变量。在设计类时,分析哪些类属性不因对象的不同而改变原创 2017-02-03 13:55:51 · 363 阅读 · 0 评论 -
数组的操作工具类
java.util.Arrays类包含了用来操作数组(比如排序和搜索)的各种方法。Arrays拥有一组static方法。 equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。 fill():将值填入array中。 sort():用来对array进行排序。 binarySearch():在排好序的array中寻找元素。 只能用于已经排好序的数组原创 2017-01-18 19:14:58 · 511 阅读 · 0 评论 -
多维数组
二维数组[][]:数组中的数组 例如:二维数组 ,就是原来一维数组的每一个元素又是一个数组1、多维数组的声明和初始化 (1)格式1(动态初始化):int[][] arr = new int[3][2]; 定义了名称为arr的二维数组, 二维数组中有3个一维数组, 每一个一维数组中有2个元素 一维数组的名称分别为arr[0], arr[1], arr[2],每一个一维数组又分别有两个元素,例原创 2017-01-18 19:30:08 · 495 阅读 · 0 评论 -
面向对象的特征之二继承
1、面向对象的三大特征 封装 (Encapsulation) 继承 (Inheritance) 多态 (Polymorphism)2、为什么要有继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。提高了代码的复用性。 继承的出现让类与类之间产生了关系,可以创建更为特殊的类型。 利于可维护性。 此处的多个类称为原创 2017-01-18 19:52:13 · 375 阅读 · 0 评论 -
方法的重写override
定义:在子类中可以根据需要对从父类中继承来的方法进行改造,也称方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。 要求:(三同(方法名、参数列表、是否static)、两小(返回值、异常)、一大(权限修饰符)) (1)重写方法必须和被重写方法具有相同的方法名称、参数列表。 (2)重写方法的返回值类型必须<=父类方法的返回值类型。 (3)重写方法不能使用比被重写方法更严格的访问权限。即原创 2017-01-18 20:00:46 · 388 阅读 · 0 评论 -
super关键字
1、this 调用本类的成员变量:this.属性 调用本类的成员方法:this.方法 调用本类的其他构造方法:this();或this(实参列表);//只能写在构造方法的第一行 ☆当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量是成员2、super:在子类中使用 调用父类的非私有的成员变量:super.属性 调用父类的非私有的成员方法:super.方法原创 2017-01-18 20:10:20 · 391 阅读 · 0 评论 -
面向对象的特征之三多态性
1、多态性指的是什么? 多态性,可以理解为一个事物的多种表现形态。 1)方法的重载与重写 2)子类对象的多态性2、子类对象的多态性的前提: 1)有类的继承 2)有子类对父类方法的重写 3)有向上转型,即把子类对象赋值给父类引用变量class Person { public void say() { System.out.println("咿咿呀呀"); }原创 2017-01-18 21:16:43 · 316 阅读 · 0 评论 -
超级父类:Object类
1、Object类是所有Java类的根父类:在java.lang中 如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类 public class Person { ... } 等价于:public class Person extends Object {...}2、根据多态的特性: (1)Object类型的引用变量可以接收任何类型的对原创 2017-01-18 21:28:46 · 2079 阅读 · 2 评论 -
==运算符与equals方法
1、==运算符 (1)基本数据类型比较值:只要两个变量的值相等,即为true (2)引用类型比较引用:比较两个对象的地址值,两个引用变量指向同一个对象的堆空间时,才为truePerson p1=new Person(); Person p2=new Person();if(p1==p2) //falsep1=p2;//如果有这样的赋值语句后 if(p1==p2) //true原创 2017-02-03 12:14:08 · 401 阅读 · 0 评论 -
toString()方法
1、默认从Object类继承的toString()方法返回的是 getClass().getName() + ‘@’ + Integer.toHexString(hashCode()) 即该对象的类名称@该对象hashcode哈希码的无符号十六进制表示2、在进行String与其它类型数据的连接操作时,自动调用toString()方法Date now=new Date();System.out.原创 2017-02-03 12:19:10 · 1521 阅读 · 0 评论 -
hashCode()方法
**1、**Object中的hashCode()方法 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。**2、**hashCode方法的主要作用是为了配合基于散列的集合一起正常运行,这样的散列集合包括HashSet、HashMap以及HashTable。3、该方法如果没有被重写,那么返回的值是什么呢? 某些朋友误以为默认情况下,原创 2017-02-03 13:10:56 · 409 阅读 · 0 评论 -
匿名对象
我们经常将匿名对象作为实参传递给一个方法调用。如果一个对象只需要进行一次方法调用,那么就可以使用匿名对象。 //方法的声明public void method(Student s){}//方法的调用method(new Student());//匿名对象new Student()Student stu=new Student();method(stu);//不是匿名对象,对象使用stu名称访原创 2017-02-03 13:18:59 · 386 阅读 · 0 评论 -
类的成员之四:代码块
类和类的成员: (1)成员变量:属性 (2)成员方法:特殊成员方法 getter和setter 有静态成员方法,非静态成员方法 (3)构造器/构造方法 (4)初始块/初始代码块 (5)内部类类的成员之四:初始代码块 初始代码块:一般来说是用于类或实例成员变量的初始化,分为静态代码块和非静态代码块(构造代码块) 1、构造代码块: 每次创建对象时都会被执行,而且优先于构造方法执行原创 2017-02-03 16:40:18 · 353 阅读 · 0 评论 -
final关键字
1、在Java中声明类、属性和方法,局部变量时,可使用关键字final来修饰,表示“最终”。 2、final修饰类:太监类(不能被其它类继承) 3、final修饰的方法 例如:Object类中public final native Class<?> getClass();例如:class Person { public final void test(){ System原创 2017-02-03 17:11:17 · 308 阅读 · 0 评论 -
native关键字
native关键字修饰的方法使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++等非Java语言实现的,并且被编译成了DLL,由java去调用。 (1)为什么要用native方法 java使用起来非常方便,然而有些层次的任务用java实现起来不容易,或者我们对程序的效率很在意时,问题就来了。 与java环境外交互: 有时java应用需要与java外面的环境交互原创 2017-02-03 17:15:22 · 250 阅读 · 0 评论 -
面向对象高级特性1:抽象类
一、抽象类(abstract class) 随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。 当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取。有时只抽取功能定义,而不抽取功能主体。class Chinese{ public vo原创 2017-02-03 17:36:35 · 607 阅读 · 0 评论 -
数组中涉及的常见算法
1.求数组元素的最大值、最小值 int[] array={49,38,65,97,76,13,27,49}; int max=0; int min=0; for(int i=0;i<array.length;i++){ if(array[max]<array[i]){ max=i; } if(arr原创 2017-01-18 18:48:43 · 354 阅读 · 0 评论 -
一维数组的内存分析
1、基本数据类型的一维数组int[] s;s = new int[10];for ( int i=0; i<10; i++ ) { s[i] =2*i+1;}2、引用类型的一维数组MyDate[] m; //MyDate是自定义类型,好比Studentm = new MyDate[10]; //引用类型的元素的默认值nullfor ( int i=0; i<10;原创 2017-01-18 18:38:17 · 626 阅读 · 0 评论 -
面向对象概述
1、面向过程与面向对象(OOP)二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,步骤。面向对象,将功能封装进对象,强调具备了功能的对象。面向过程是面向对象的基础。并不是说有了面向对象就完全不要面向过程了,在具体的功能实现上还是要面向过程的,只是角度和高度不一样罢了。OOP : Object Oriented Programming 面向过程:Procedur原创 2017-01-18 14:13:21 · 289 阅读 · 0 评论 -
类与对象
一、类与对象类(class)和对象(object)是面向对象的核心概念。类是对一类事物描述,是抽象的、概念上的定义对象是实际存在的该类事物的每个个体,因而也称实例(instance)。二、类面向对象是一种的程序设计方法,其基本思想是使用对象和类等基本概念来进行程序设计。1、类是对现实世界事物的抽象原创 2017-01-18 14:45:32 · 323 阅读 · 0 评论 -
对象的内存结构分析
对象的产生原创 2017-01-18 15:35:43 · 252 阅读 · 0 评论 -
变量的分类
1、变量的分类关于变量的分类:1)按照数据类型的不同:基本数据类型(8种) 和 引用数据类型2)按照声明的位置的不同:成员变量 和 局部变量2、成员变量(属性)和局部变量的区别?成员变量:(1)声明位置:成员变量定义在类中方法外,在整个类中都可以被访问。(2)数据的存储: 成员变量分为类成员变量和实例成员变量,类成员变量的数据在方法区,实例变量存在于对象所在的堆内存中。(关于类原创 2017-01-18 15:43:52 · 2004 阅读 · 0 评论 -
方法的参数传递
1、形参与实参形参:方法声明时,方法小括号内的参数,用以在方法中代表那个参与计算的的未知的值实参:调用方法时,实际传入的参数的值2、规则:Java的参数传递机制:值传递机制 1)形参是基本数据类型的,将实参的值传递(复制)给形参的基本数据类型的变量 2)形参是引用数据类型的,将实参的引用类型变量的值(对应的堆空间的对象实体的首地址值)传递(复制)给形参的引用3、图解(1)基本数据类型 (2)原创 2017-01-18 16:11:03 · 545 阅读 · 0 评论 -
Java内存管理与垃圾回收
一、内存简介 根据《Java虚拟机规范(第2版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示: 人们经常把Java内存区分为堆内存(Heap)和栈内存(Stack),这种分法比较粗糙,Java内存区域的划分实际上远比这复杂。这种划分方式的流行是因为大多数程序员最关注的、与对象内存分配关系最密切的内存区域是这两块。 通常所说的堆(Heap),此内存原创 2017-01-18 16:22:20 · 412 阅读 · 0 评论 -
面向对象三大特征之一封装性
一、面向对象的三大特征 封装 (Encapsulation) 继承 (Inheritance) 多态 (Polymorphism)二、封装1、什么是封装封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。2、封装的分类与好处狭义的封装:属性的封装与方法的封装广义的封装:包的管理、组件、框架、应用程序...好处: 将变化隔离 便于使用原创 2017-01-18 16:34:44 · 3640 阅读 · 0 评论 -
类的成员之一属性
类的属性1、类的成员之一:属性,对象的属性,也称为成员变量,又称为实例变量。对象属性的初始化,即初始赋值,有以下同两种方式:默认初始化赋值:对象被创建时,不同类型的属性首先被赋予不同的缺省值。显式初始化赋值:如果在类中声明属性时指定了初始值,那么在对象被创建时,相应的属性就被显式地赋予此初始值。语法格式: 修饰符 数据类型 属性名 ; //默认初始值赋值 修饰符 数据类型原创 2017-01-18 15:29:01 · 772 阅读 · 0 评论 -
类的成员之二:成员方法
成员方法,对于初学者,为了区分,分为三类,实际上都是成员方法 (1)类方法:静态成员方法 (2)setter和getter方法:为属性赋值,有规则的命名方式 (3)其他成员方法:非静态的成员方法原创 2017-01-18 16:41:48 · 649 阅读 · 0 评论 -
this关键字
一、this的意义 在Java中,this关键字比较难理解,它的作用和其词义很接近。 它在方法内部使用,即这个方法所属对象的引用; 它在构造器内部使用,表示该构造器正在初始化的对象。二、this在类中的使用 this表示当前对象,可以调用类的属性、方法和构造器1、this调用类的属性 this关键字可用来区分局部变量和实例变量(属性) 例如: this.name = name;publi原创 2017-01-18 16:46:02 · 293 阅读 · 0 评论 -
类的成员之三:构造器
一、构造器的特征 它具有与类相同的名称 它不声明返回值类型。(与声明为void不同) 不能被static、final、synchronized、abstract、native修饰 不能有return 返回值;语句,return ;可以有二、构造器的作用: 与new一起使用创建对象 给对象的属性进行初始化三、语法格式 public class TestConstructor { p原创 2017-01-18 16:53:46 · 326 阅读 · 0 评论 -
JavaBean
JavaBean是一种Java语言写成的可重用组件。所谓javaBean,是指符合如下标准的Java类: 类是公共的 有一个无参的公共的构造器 有属性,且有对应的get、set方法用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这原创 2017-01-18 16:56:17 · 483 阅读 · 0 评论 -
包的管理
一、包的作用: ①用于区分重命名 ②用于控制访问权限 ③用于划分项目的结构层次,通常将功能相近的类划分到同一个包中二、如何声明包 package : 用于确定当前类的位置 ①写在 .java 源文件可执行代码的首行 ②包的命名规范:所有字母都小写。 (通常以所在公司域名的倒置) ③每个 “.” 代表一层目录如果声明了一个类的所属包,那么应该以该类的全称(带包名的原创 2017-01-18 18:09:39 · 296 阅读 · 0 评论 -
数组的声明与使用
一、数组的概念 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素. 数组是多个相同类型数据的组合,实现对这些数据的统一管理. 数组中的元素可以是任何数据类型,包括基本类型和引用类型. 数组属于引用类型,数组型数据是对象(objec原创 2017-01-18 18:19:24 · 14795 阅读 · 0 评论 -
数组的遍历
如何遍历数组 (1)一般使用for循环:绝配 例如: int[] iArray = new int[]{3,9,8}; for(int i=0;i<iArray.length;i++){ System.out.println(iArray[i]); }(2)增强for循环:只用于数组元素的查看 语法格式: for(元素类型原创 2017-01-18 18:23:42 · 216 阅读 · 0 评论 -
模板设计模式
设计模式设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。 设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索。模板设计模式抽象类的应用:模板方法设计模式(Template Method) 举例: 需求:获取任意一段程序的运行时间 提示:获取程序开始和结束的时间并相减即可。获取时间:System.currentTimeMi原创 2017-02-03 18:24:16 · 278 阅读 · 0 评论