JAVA的一些笔记
/*一般函数与构造函数的区别
构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化
一般函数:对象创建时,需要函数功能时才调用 构造函数:一个对象对象创建时,只调用一次
一般函数:对象创建时,可以被调用很多次
*/ /*当成员变量和局部变量重名时。可以用this来区分
this:代表对象。 代表那个对象?当前对象
this就是所在函数所属对象的引用
简单的说:那个对象调用了this所在的函数,this就代表那个对象
this也可以用于在构造函数中调用其他构造函数
注意:只能定义在构造函数的第一行。因为初始化函数要先执行 public Demo(String name,int age)
{
this.name=name;
this.age=age;
}
public boolean bijiao(Demo p)
{
return this.age=p.age;
}
pyblic static void main(String[] args)
{
Demo p1=new Demo("超霸",18);
Demo p2=new Demo("暮雪",20);
p1.bijiao(p2);
} */ /*,String name ///成员变量,实例变量 static String name //静态变量,类变量 成员变量and静态变量的区别?
1,两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象被回收而释放
静态变量随着类的加载而存在,随着类的消失而消失
2,调用方式不同
成员变量只能被对象调用
静态变量可以被对象调用,还可以被类名调用
3,数据存储位置不同
成员变量数据存储在堆内存中,所以也叫对象的特有数据
静态变量存储在方法区的静态区,所以也叫对象的共享数据
*/ /*静态使用的注意事项
1,静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态)
2,静态方法中不可以使用this或者super关键字
3.主函数是静态的
静态在方法区的静态区,栈内
4.静态什么时候用?
1静态变量 2.静态方法
*/
1 /*extends继承 implements接口继承 public class 类名 implements 接口A,接口B{类体}
public interface 接口a extends 接口B{
常量定义 方法声明
}
class 子类 extends 父类 */
class Person
{
String name;
int age;
} class Student extends Person
{
//String name;
//int age;
void study()
{
System.out.println("good good student study");
}
} /*abstract 抽象类and接口
abstract class 类名{{类体}
abstract void show();
抽象类:笼统,模糊,看不清。不具体
特点
1.方法只有声明没有实现时。该方法就是抽象方法。需要被abstract
抽象方法必须定义在抽象类中
2.抽象类不可以被实例化,为什么?因为调用抽象方法没意义
3.抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化
否则,这个子类还是抽象类。 1.抽象类中有构造函数吗
有。用于给子类对象进行初始化
2.抽象类可以不定义抽象方法吗?
可以的。但是很少见,目的就是不让该类创建对象。AWT的适配器对象就是这种类
通过这个类中的方法有方法体。但是却没有内容
abstract class Demo{
void show1()
{}
void show2()
{}
}
3.抽象函数不可以和那些关键字共存?
************抽象方法要被覆盖
private 不行
static 不行 静态无法被覆盖 静态不需要对象。无意义
final 不行。。最终的,无法被覆盖
4.抽象类和一般类的区别
相同点:
抽象类和一般类都是用来描述事物的。都在内部定了成员
不同:
1.一般类有足够的信息描述事物
抽象类描述的信息有可能不足。
2.一般类中不能定义抽象方法。只能定义非抽象方法
抽象类中可定义抽象方法。同时科院定义非抽象方法
3.一般类可以被实例化
抽象类不可以被实例化
5.抽象类一定是个父类吗?
是的。因为需要子类覆盖其方法后才可以对子类实例化 定义接口关键字
interface Demo
{ 常量定义 方法声明
abstract void show1();
}
对于接口中的常见的成员,而且这些成员都有固定的修饰符
全局常量 public static final
抽象方法 public abstract
接口中的成员都是公共权限
interface 类名{
接口的定义
类与类之间是继承关系 类与接口直接是实现关系
接口不可以实例化
只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化
否则这个子类就是一个抽象类
} 抽象类和接口的异同点
不同点:1.抽象类需要被继承,而且只能单继承
接口需要被实现。而且是多实现。
2.抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
接口中只能定义抽象方法,必须由子类去实现
3.抽象类的继承是is a关系,在定义该体系的基本共性内容
接口的实现是like a关系,在定义体系额外功能。
*/ /*对象的多态性 class 动物
{}
class 猫 extends 动物
{}
class 狗 extends 动物
{}
猫 x= new 猫();
动物 X=new 猫(); 一个对象。2中形态
猫这类事物即具备猫的形态,又具备着动物的形态。这就是对象的多态性
简单说:就是一个对象对应着不同类型 多态在代码中的体现
父类或者接口的引用指向其子类的对象 */ /*内存的划分 1寄存器
2本地方法区
3方法区
4栈内存
存储的都是局部变量,局部变量一结束就消失
变量一旦离开作用域一旦结束。改变量就自动释放
生命周期短,更新快
5堆内存 存储的是数组和对象(其实数组就是对象),凡是new建立的都在堆中。
实体用来封装存储对象多个数据。
堆特点
1.每个实体都有首地址
2.堆内存中没一个变量都有默认初始化值,根据类型的不同而不同
3.垃圾回收机制 public class CalcDemo1 {
public static void main(String[] args) {
for(int x=0;x<5;x++)
{ }
System.out.println(x);
}
} */ /*设计模式
对问题行之有效的解决方式。其实它是一中思想
单例设计模式
解决的问题:就是可以保证一个类在内存中的对象唯一性
如:对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性
如何保证对象唯一性?
1.不允许其他程序用new创建该类对象。
2.在该类创建一个本类实例
3.对外提供一个方法让其他程序可以获取该对象
步骤
私有化该类构造函数
通过new在本类中创建一个本类对象
定义一个公有方法,讲创建的对象返回
*/ /*单列设计模式。保证对象唯一性 class SingleDemo
{
public static void main(String[] args)
{ Singel t1=Singel.getInstance();
Singel t2=Singel.getInstance();
t1.setNum(10);
t2.setNum(20);
System.out.println(t1.getNum());
System.out.println(t2.getNum());
}
}
对象唯一性实现方法
class Singel //饿汉式 类一加载。对象就已经存在了。。一般用这个
{
private int num;
private static Singel s=new Singel();
private Singel(){}
public static Singel getInstance()
{
return s;
}
public void setNum(int num)
{
this.num=num;
}
public int getNum()
{
return num;}
} class Singel2 //类加载进来,没有对象。只有调用get方法时,才会创建对象 懒汉式
{
private static Singel2 s=null;
private Singe12(){}
public static Singel2 getinfo()
{
if(s==null)
s=new Singel2();
return s;
} } */ /*Thread多线程 继承 重写run方法。代码放在run中 start启动线程并调用run方法 */
JAVA的一些笔记的更多相关文章
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
- 20145213《Java程序设计学习笔记》第六周学习总结
20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- java effective 读书笔记
java effective 读书笔记 []创建和销毁对象 静态工厂方法 就是“封装了底层 暴露出一个访问接口 ” 门面模式 多参数时 用构建器,就是用个内部类 再让内部类提供构造好的对象 枚举 si ...
- java JDK8 学习笔记——助教学习博客汇总
java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Jav ...
- java JDK8 学习笔记——第16章 整合数据库
第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...
随机推荐
- Nebula Flink Connector 的原理和实践
摘要:本文所介绍 Nebula Graph 连接器 Nebula Flink Connector,采用类似 Flink 提供的 Flink Connector 形式,支持 Flink 读写分布式图数据 ...
- 生成微博授权URL及回调地址
1.创建apps/oauth模块进行oauth认证 '''2.1 在apps文件夹下新建应用: oauth''' cd syl/apps python ../manage.py startapp oa ...
- 【Usaco 2009 Gold 】JZOJ2020年9月19日提高B组T2 电视游戏问题
[Usaco 2009 Gold ]JZOJ2020年9月19日提高B组T2 电视游戏问题 题目 Description 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶叫兽的做法拿她们去电击戒瘾的,可 ...
- 20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK
demo代码如下: private void btnPrint_Click(object sender, EventArgs e) { if (this.btnPrint.Text == " ...
- argis android sdk配置备忘一下
ArcGIS RuntimeAndroid SDK100.1.0 1.在线配置(只有两处) 在project工程中的gradle添加 maven { url 'https://esri.bintray ...
- socket阻塞与非阻塞,同步与异步,select,pool,epool
概念理解 一.与I/O相关的五个重要概念 1. 第一个概念:用户空间与内核空间 1. 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方) 2. ...
- 老猿学5G专栏文章目录
☞ ░ 前往老猿Python博文目录 ░ 一.3GPP规范文档及其他推荐阅读博文 老猿学5G扫盲贴:3GPP规范文档命名规则及同系列文档阅读指南 老猿学5G扫盲贴:3GPP规范中部分与计费相关的规范序 ...
- 第8.14节 Python类中内置方法__str__详解
一. object类内置方法__str__和函数str 类的内置方法__str__和内置函数str实际上实现的是同一功能,实际上str调用的就是__str__方法,只是调用方式不同,二者的调用语法如下 ...
- PyQt学习随笔:自定义信号连接时报AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'connect'
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 如果使用自定义信号,一定要记得信号是类变量,必须在类中定义,不能在实例 ...
- PyQt(Python+Qt)学习随笔:QListView的viewMode属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的viewMode属性用于控制QListView的视图模式,该属性类型为枚举类型Q ...