JAVA 笔记(三)

  1. NullPointerException:空指针异常 原因:数组已经不再指向堆内存了。而你还用数组名去访问元素。
  2. 对于查找问题,如果找到就返回其索引值,如果找不到就要返回一个负数(一般是负一)这是必须的,否则如果找不到,就没有返回值,这样程序就会报错。
  3. 二维数组的元素是一个一维数组(这样好理解二维数组);一维数组是引用类型,默认值是null.
  4. 二维数组的格式 数据类型【】【】变量名=new 数据类型【m】[n];m表示这个二维数组有多少个一维数组,n表示每一个一维数组的元素个数。
  5. 二维数组的其他格式:数据类型 变量名【】【】=new数据类型【m】【n】,数据类型【】变量名【】=new数据类型【m】[n];(这两种不推荐使用);
  6. 输出数组名是一个地址值;
  7. 数据类型【】【】变量名=new 数据类型【m】[],这种定义只给出二维数组中包含了m个一维数组,但是并没有给出一维数组元素的个数,这时我们给以动态给出,并且每一个一维数组的个数可以不同(就是列可以不同);
  8. 一维数组没有分配空间是null(因为一维数组是引用类型)分配之后才是对应类型的默认值。
  9. 二维数组的第一个值是必须要给的,否则无法分配内存, 因为就不知道要多少空间,第二个值可以给也可以不给。
  10. 二维数组的静态定义:数据类型【】【】变量名=new数据类型【】【】{{元素1}{元素2}……..};简化版:数据类型【】【】变量名={{元素1}{元素2}……};
  11. 二维数组的遍历:外循环的是二维数组的长度,其实就是一维数组的个数。内循环控制的是一维数组的长度。
  12. 方法存在内存的方法区(有方法标记识别,否则被别的程序调走)。
  13. Java中的参数传递问题:基本数据类型:形式参数的改变对实际参数没有影响。引用类型:形式参数的改变直接影响实际参数(因为二者指向的地址一样)
  14. 因为static变量也就是静态变量,在程序运行过程中被声明后就会一直保存在内存里,所以只能声明一次,第二次再访问那个函数时,给静态变量声明同时赋值的语句就不再执行了,而静态变量的值始终保存在内存里,也就是上次改变以后的值。(知道程序结束)没有static修饰的函数中的变量,只在函数被执行时占用内存,函数执行完毕后就被销毁,数据也就不存在了,所以每次都要声明,值也就不会变。
  15. 面向对象将我们从执行者变成指挥着(爽吧);
  16. 面向对象:首先想到这个问题有多少类。然后类中有什么东西,最后看类与类之间的关系。类的获取一般是名词。(uml语言有所介绍);
  17. 面向对象的三大特征(封装,继承,多态);
  18. 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
  19. Java中最基本的单位是类。类是一组相关属性和行为的集合,对象是该类事物的具体表现。
  20. 成员变量和局部变量的区别:A;成员变量(在类中方法外),局部变量(在方法定义中或者方法声明上)B:成员变量:在堆内存,局部变量:在栈内存。成员变量:随着对象的创建而存在,随着对象的消失而消失。局部变量:随着方法的调用而存在,随着方法的调用完毕而消失;成员变量:有默认初始化值,局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
  21. 局部变量名称和成员变量名称可以一样,在方法中使用的时候,采用的就近原则。
  22. 如果你看到一个方法的形式参数是一个类(引用类型)这里其实需要的是该类的对象。
  23. 匿名对象:没有名字的对象。(new s()  就是一个匿名对象);
  24. 匿名对象的应用场景:A;调用方法,仅仅只调用一次的时候,多次调用不适合(因为多次开辟堆内存)好处:匿名对象调用完毕后就是垃圾,可以被垃圾回收器回收。B;匿名对象可以作为实际参数传递。
  25. Private:私有的。可以修饰成员变量和成员方法。被private修饰的成员只能在本类中使用。
  26. 封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。(提高代码复用性和安全性)
  27. This:是当前类的对象引用。简单的记,它就代表当前类的一个对象。方法被那个对象调用,this就代表哪个对象。
  28. 构造函数;给对象的数据进行初始化。方法名和类名一样,没有返回值类型,连void都没有,没有具体的返回值,故也没有return.,它可以重载。
  29. 给成员变量赋值的两种方式:setXxx(),  构造方法。
  30. Student s=new Student();做了哪些事情:
  31. 变量的范围是越小越好,因为这样可以及时的回收。
  32. 导入的包必须出现在所有的类前面。
  33. 针对多个对象有共同的成员变量值的时候就可以用static关键字(比如国籍);
  34. Static的特点:(他可以修饰成员变量和修饰成员方法)a:随着类的加载而加载(回想main方法)B:优先于对象存在c;被类的所有对象共享(如果某个成员变量是被所有对象共享的,那么它就应该是静态的)D;可以通过类名调用(其实它本身也可以通过对象名调用,推荐使用类名调用)静态修饰的内容一般我们称其为:与类相关的。类成员。
  35. Static关键字注意事项:A;在静态方法中是没有this关键字的(因为静态是随着类的加载而加载,this是随着对象的创建而存在,静态比对象先存在,即前面不能调用后面)b:静态方法只能访问静态的成员变量和静态的成员方法。,而非静态方法既可以访问静态成员变量和静态成员方法,也可以访问非静态的成员和方法。(静态只能访问静态,非静态可以访问一切)
  36. 思考题:构造方法中可不可以有return语句呢?
  37. 可以。而是我们写成这个样子就OK了:return; 其实,在任何     的void类型的方法的最后你都可以写上:return;
  38. 构造方法的注意事项A:如果我们没写构造方法,系统将提供一个默认的无参构造方法B:如果我们给出了构造方法,系统将不再提供默认构造方法,这个时候如果我们想用无参构造方法就必须自己写出。(推荐永远自己写出);
  39. 工具类中是可以使用静态的。将构造方法私有化,外界就不能创建对象了。
  40. 如何制作一个说明书:A;写一个工具类B;对这个类加入文档注释/**    */C:用工具解析文档注释(javadoc工具)d:格式javadoc –d 目录 –author –version 工具类名称.java.                           --------》待续
时间: 2024-10-24 01:20:28

JAVA 笔记(三)的相关文章

Thinking in java 笔记三

第八章 多态 多态是继数据抽象和继承之后的第三种基本特征 8.1 再论向上转型 8.2 转机 方法调用绑定,java除了static和final(private方法属于final方法)外其他所有方法都是后期绑定 多态是一项将改变的事物与未变的事物分离开来的重要技术 不要试图覆盖基类private方法,只是在之类中产生了一个全新的方法 域的访问操作由编译器解析不是多态的,静态方法也不具有多态性 8.3 构造器和多态 构造器调用顺序 P159 如果需要清理,在子类覆盖基类清理方法,清理完自身后调用基

Java笔记(三)

Windows快捷键 win + r 运行win + l 锁定当前账号win + d 显示桌面alt + tab 多任务切换F2 重命名 MyEclipse常用快捷键 F11 运行ctrl + M 最大化当前视窗ctrl + Z 撤销ctrl + Y 还原撤销ctrl + O 打开类的大纲视图,相当于Outlinectrl + shift + H 快速搜索一个类(API+工作空间)ctrl + shift + R 快速搜索一个类(当前项目中)ctrl + D 删除当前行ctrl + / 添加/去

10.5-全栈Java笔记:常见流详解(三)

上节我们讲到「Java中常用流:缓冲流」,本节我们学习数据流和对象流~ 数据流 数据流将"基本数据类型变量"作为数据源,从而允许程序以与机器无关方式从底层输入输出流中操作java基本数据类型. DataInputStream和DataOutputStream提供了可以存取与机器无关的所有Java基础类型数据(如:int,double 等)的方法. [示例1]DataInputStream和DataOutputStream的使用 package com.bjsxt.io; import 

12.5-全栈Java笔记:Java网络编程(三)

上节回顾:在学习了Socket在建立客户端和服务器单项通讯中,分别创建独立的Socket,并通过Socket的属性. 那么如何将两个Socket进行连接,从而达到客户端和服务器之间建立输入输出流进行通信呢?在上节中我们已经讲到,TCP/IP套接字是最可靠的双向流协议,使用TCP/IP可以发送任意数量的数据.如果发送方和接收方计算机确定好端口,他们就可以通信了,其中的端口用套接字表示. [示例1]客户端与服务器端双向交流的Socket之服务器端 import java.io.BufferedRea

11.4-全栈Java笔记:线程三种状态的控制

关于Java线程终止.暂停.联合的文章网上有很多,经过测试,本节重点讲解的是针对不同使用场景选择合适的方法. 终止线程的典型方式 终止线程我们一般不使用JDK提供的stop()/destroy()方法(他们本身也被JDK废弃了).通常的做法是提供一个boolean型的终止变量,当这个变量置为false,则终止线程的运行. [示例1]终止线程的典型方法(重要!!!) public class TestThreadCiycle implements   Runnable { String name;

Java笔记---部署 JavaWeb 项目到云服务器

一.前言 前面我们已经尝过了在云服务器上部署代码的甜头了,现在主菜就要上场了,那就是将我们的 JavaWeb 项目部署到云服务器上.兴奋吧?淡定淡定~ 二.项目部署 我们对于 Java Web 项目在本地机器(无论是 Windows 还是 Linux)上的部署已经了然于心了,那么对于在云服务器上部署 Java Web 项目又是如何操作的呢? 其实很简单,还是离不开 Web 项目部署的那三点: ① 基础的 JDK 环境 ② 一个 Web 服务器.如 Tomcat.JBoss ③ 一款数据库.如:m

JAVA 笔记 七

JAVA笔记七 this:就代表本类的对象,this代表它所在函数所属对象的引用简单说:那个对象在调用this所在的函数,this就代表那个对象静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数)当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用.类名.静态成员static特点1.随着类的加载而加载2.优先于的对象存在3.被所有对象所共享4.可以直接被类名所调用实例变量和类变量的区别:1.存放位置. 类变量随着类的加载而存在与方法区中. 实例

JAVA笔记六

JAVA笔记总结六 把大象放入冰箱的几步: 面向对象的三个特征:封装,继承,多态 JAVA开发实际上就是找对象使用,没有对象就创建一个对象 找对象,建立对象,维护对象的关系 类和对象的关系:类是对现实生活中实物的描述: 对象就是这类事物,实实在在存在的个体 匿名对象:匿名对象可以作为参数进行传递也可以作为对象方法进行一次调用

13.3-全栈Java笔记:打飞机游戏实战项目|PaintThread|launchFrame

多线程和内部类实现动画效果 1)增加绘制窗口的线程类 前三个版本,我们步步为营,每个小版本都有功能的突破.但是,目前为止我们的窗口仍然是静态的,并没有像真正的游戏窗口那样"各种动.各种炫".本节我们结合多线程实现动画效果. 我们在MyGameFrame类中定义"重画窗口线程PaintThread类",为了方便使用MyGameFrame类的属性和方法,我们将PaintThread定义成内部类. [示例1]MyGameFrame类:增加PaintThread内部类 pu

4.5-全栈Java笔记:垃圾回收机制

垃圾回收机制(Garbage  Collection) Java引入了垃圾回收机制,令C++程序员最头疼的内存管理问题迎刃而解.JAVA程序员可以将更多的精力放到业务逻辑上而不是内存管理工作上,大大的提高了开发效率. 垃圾回收原理和算法 1)内存管理 Java的内存管理很大程度指的就是对象的管理,其中包括对象空间的分配和释放. 对象空间的分配:使用new关键字创建对象即可 对象空间的释放:将对象赋值null即可.垃圾回收器将负责回收所有"不可达"对象的内存空间. 2)垃圾回收过程 任何