JAVA第二周

一、 第五章

调试断点debug

  1、定位逻辑错误(设置断点)

  2、启动调试

  3、单步执行,观察变量

  4、修改

null与" "是有区别的,后者分配了空间

调用方法

当一个方法正在执行时,有三种情况

  1、方法返回一个值

  2、方法不反回一个值

  3、方法抛出一个异常给调用者(以后专门讨论)

方法签名

  方法签名包括访问修饰符、可选修饰符、  方法名、参数列表、返回值的数据类型等信息

  例如:   public static double random()

访问修饰符

   public、private、protected

可选修饰符

  static、final、abstract、native、synchronized.

  用static修饰的方法为静态成员,为类的所有对象共享

  在静态方法中,只能够直接调用静态成员,不能直接调用非静态成员

  静态成员的调用,通过类名打点的方式调用

  在成员方法中(未被static修饰的方法),可以直接调用静态成员与非静态成员

  形式参数与实际参数 按值调用 方法重载(真他妈机智的方式,也叫做静态的多态)

  当一个类有两到多个同名但是有不同参数列表的方法时,就是方法重载。

  重载一个方法,只要方法的形式参数列表对编译器来说是截然不同时,就会方法重载。

  与参数的类型相关,与名字无关。

  例如:getDay(int year)与getDay(int day)不是方法重载

  而println()中如果输入不同的参数就可以调用不同的方法

   构造器  Person someOne = new Person();

   注意:构造方法的名字必须和类名一致,构造方法没有返回类型

  默认情况下,类中有一个无参构造方法

  例如:public Person( ){

  }

  并且我们可以在这个构造方法中初始化数据。

  除此之外,我们可以创建一个含参数的构造方法。

  注意:如果我们写出了有参构造器时,系统不会再产生无参构造器,如果要使用,必须自己重新再写。

  构造器是一个特殊的方法,它在类创建一个实例时被调用执行。

  构造器的目的是初始化类的实例,使其成为一个有效的状态。

  只要是一个对象被创建,构造器中再调用同一个类中其他的构造器,用到this语句 (必须要是构造语句中的第一句)。

  例如:   public Person(int stuNum,char name){

   }

      public Person(int stuNum,char name,String age){

        this(stuNum,name);

      }

比较字符串的大小

  忽略大小写.equalsIgnoreCase( );

二、第六章

数组

  什么是数组?

   数组是存储在一个连续的内存块中的元素集合

   数组中的每个元素必须是相同的数据类型,并且通过索引  进行区分。

   数组中的第一个元素的索引为0

为什么要使用数组?

  单一值类型变量有时候很难满足应用程序的设计要求。

  数组类型变量可以同时存储多个同类型基础数据类型变量或对象。

创建数组

  声明数组

  int score [];

  int [] score;//提倡使用的方式  分配空间

  score = new int [10];(分配空间后,默认的值是0)

  ArrayIndexOutOfBoundExceotion(数组下标越界)

  声明并分配空间

  int [] score = new int [10];

   初始化

  score [0] = 1;

  声明、分配空间并初始化

  int [] score = new int []{1,2,3,4,5};

   int [] score = {1,2,3,4,5};//不能分开成两条语句

   数组的大小(长度)

  用到length属性

  例如:for(int i = 0;i < score.length;i++){    sum += score;    }

   int avg = sum / score.length;

  java中的数组是对象

  补充

  循环结构for each:用于数组或者集合的遍历操作

  用法:for(单个数据类型  变量 : 数组或集合的名称){

     }

  例如:   for (int item : score){         sum += score;    }

  注意:不可以通过item改变数组元素的值

  对象数组/* 难点 */

  User [] users = new User[100];

  数组拷贝

  使用Arrays.copyof(oraginalArrays,length)

  int [] score = new int []{1,2,3,4,5};

  int [] temp = Arrays.copyof(score,score.length);

  数组的排序(升序)

  签名  public static void sort(int [] a)

  多维数组

  arrays[行][列]

  arrays.length 的结果值是行数

  arrays[0].length的结果是列数

  如何遍历?

  for (int [] is : arr){

     for(int [] i : is){

    }

   }

  三、JVM

java程序运行在JVM上

JVM是java程序和操作系统之间的桥梁

JVM实现了java的平台无关性

JVM是内存分配原理的基础与前提

内存分配

——寄存器

  JVM内部虚拟寄存器,存取速度非常快,程序不可控制

——栈(First in,last out)

  保存局部变量的值,包括:

    1、用来保存基本数据类型;

    2、保存类的实例(即堆区对象)的引用(指针)

——堆

  用来存放动态产生的数据,比如new出来的对象。

  注意创建出来的对象只包含属于各自成员变量,并不包含成员方法。

  因为同一个类的对象拥有各自的成员变量,存储在各自的堆中。

——java运行过程涉及的内存区域

  1、常量池

    常量池就是这个类型用到的常量的一个有序集合

例如字符串的创建

  String str = "abc";

    这里是在常量池中查找或者创建abc,再由栈引用常量池中的值

    而String str2 = new String("abc");(这儿会创建两个对象,分别在堆和常量池中)

    先在堆中拷贝下常量池中的值,再由栈引用堆中的值

    注意: System.out.println(str == str2);比较的是地址的值,返回false;

  2、代码段

  3、数据段

字符串常用的方法

 测试后缀名字是否相同

  public boolean endswith(String suffix);

 返回指定字符在此字符串中第一次出现的索引

  public int indexOf(int ch);

返回值是否为空

  public boolean isEmpty();

当且仅当length()为0时返回true.

分割字符串

  public String[] split (String regex);

  Regex

结果  :     { "boo", "and", "foo" }

    o  { "b", "", ":and:f" }

  返回一个新的字符串,它是此字符串的一个子字符串。

  该子字符串从指定索引处的字符开始, 直到此字符串末尾。

    public String substring(int beginIndex);

    示例:

      "unhappy".substring(2) returns "happy"

      "Harbison".substring(3) returns "bison"

      "emptiness".substring(9) returns "" (an empty string)

使用默认语言环境的规则

  将此 String 中的所有字符都转换为小写

    public String toLowerCase();

  使用默认语言环境的规则将此

  String 中的所有字符都转换为大写

    public String toUpperCase();

  返回字符串的副本,忽略前导空白和尾部空白(去掉前后空格)

    public String trim();

字符串的拼接

  String name = "张三";

  String address = "成都";

  String infor = name + address;

  StringBuilder = new StringBuilder();

    四、补充

在字符串中,length是一个属性,后面不加括号

而在求字符串的长度的时候,调用的是一个方法,length后面要加括号

访问修饰符

        本类 同一包中不同类 不同包 子类

public         ?           ?               ?       ?

protected    ?           ?                       ?

default        ?           ?

private        ?

注:?表示可以使用

时间: 2024-11-02 03:12:51

JAVA第二周的相关文章

201671010117 2016-2017-2 《Java程序设计》Java第二周学习心得

Java第二周学习心得 这一周老师在周四进行了课堂测验,完全出乎我的意料,我以为老师会在前两周上课讲一下,由于我在课前没有好好准备,反转课堂来的有的措手不及,那些题很多很多都不会,也错了很多,班上有很多表现很好的同学,他们课前准备充分,在课堂上完全没有任何压力,我也意识到了我课前没有花大量时间看书的严重性,所以我下课便去看第三章了,以后也一定要好好看书,找出不懂得问题,课上也要认真向其他优秀同学学习,不懂的问题也要想办法解决. 今天写了PPT上的任务1-9,着实也遇到了很多不会的问题,像是最后的

2018-03-11 20165235 祁瑛 Java第二周考试总结

20165235 祁瑛 Java第二周考试总结 课后习题p16 代码编写 class Person { void speakHello (){ System.out.print("nin hao "); System.out.println("nice to meet you"); } } public class Xiti { public static void main (String arg[]){ Person zhang = new Person();

java第二周学习总结

第二周进入javaoo的学习,也就是面向对象,初识对象的我们还相对很懵逼. 首先,有对象才能分析出类,分析出类后才能实例化对象. 这句话的意思是:类是对象的抽象,对象是类的实例. 类是具有相同属性和行为的一组对象的抽象. 基础重要点 : 1.一个java文件只能有一个公共类,但可以有无数个类. 2.所有的局部变量都在栈当中,new出来的全部在堆中.全局变量也在堆中. 3.例子:newDog().feed("吃饭")   表匿名对象,只能用一次. 4.在本类的方法中访问本身的属性,用th

java第二周学习心得

时光匆匆,第二周的学习 就过去了,对于java程序的编写还是不怎么熟悉 Java虚拟机JVM是Java语言最大的特点,JVM是一个可运行Java字节码的虚拟计算系统..它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信.还包括一组寄存器.一个栈.一个垃圾回收堆和一个存储方法域. JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改地运行.这个也是java最大的特色跨平台性,也就是一处编写,处处运行.JVM在执

20165204 Java第二周学习

20165204Java第二周学习总结 学习内容 本周的学习课程内容繁多,但是因为有C语言的基础,都能够比较顺利地理解.以下附上视频学习时总结的笔记. 遇到问题 在代码的抄写与调试阶段最经常碰到的还是一些C语言习惯带来的麻烦,不太擅长行尾风格导致经常少打前花括号,还有一些因对键盘部分符号不熟悉导致的符号错误,以及大小写错误(在这方面Java真的很严格).代码就是需要一步一步调试的.并没有遇到非常棘手的问题,代码编译错误截图也没有保存,都调试正确了. 代码托管 以下为脚本运行截图,已将代码上传至码

学习Java第二周

这是学习java的第二周,又这样不知不觉的结束了 上周想要学习的这一周也都做到了,可是觉得进度有些慢了,学习了: 1. 接口和抽象类: 2. 集合与数组: 3. 方法的定义: 4. 递归算法: 5.对象和数据管理: 跟着视频教程学习并测试了视频上的代码,测试代码期间不乏这里哪里的小问题,是不熟练和不细心导致的,要赶快熟悉java编程的方式,多实践.下一周要学习的内容是: 包装类 数字处理类 Object类 Java类包 内部类 原文地址:https://www.cnblogs.com/ywqtr

Java第二周总结报告

第二周的学习,开始正式实践进行Java的学习. 本周做了什么? 了解的Java的一些基本知识,如Java变量,数据类型和运算符等.Java变量对不同的数据类型最好采用不同的命名规则,合理的命名有利于提高程序的可读性,是代码编写的一种好习惯,需要慢慢养成.数据类型也跟C/C++差不多,学习起来得心应手.运算符也是一样.再就是对环境变量设置和编译器的使用,按照课本的教程一步一步的完成了对环境变量能的设置,能在系统命令行模式下成功运行Java程序.对eclipse编译器的使用也逐渐熟悉起来,输出的最基

JAVA第二周。

经过了又一周对JAVA的学习,感觉自己还是能听得懂老师所教的知识.这一周我学习了对象的行为,JAVA中的数组是怎么样的,还有JAVA的继承. JAVA中的数组和C当中的数组有相似的地方,也有不同的地方.继承是我以前没学过的新知识,不过我相信只要认真的听老师讲课,下来多多练习,还是会掌握的. 我总结了我在学习中的一些不足的地方.第一就是:我感觉老师讲的全部知识,我都听得懂,不管是书上的,还是上课时写的代码,我都能看懂和听懂,但是,每次 老师叫我们做作业的时候,问题就来了,不知道代码该怎么用,不知道

java第二周周学习总结

java运算符和循环 java运算符 一.for 语句 for 语句的基本结构如下所示:for(初始化表达式;判断表达式;递增(递减)表达式){    执行语句;   //一段代码} 初始化表达式:初始化表达式的意义,在于定义循环之前变量的值是多少,如果没有这一项,就不知道该从哪个值开始循环. 判断表达式:判断表达式的作用在于规定循环的终点.如果没有判断表达式,那么此循环就成了死循环. 递增(递减)表达式:这一项规定每执行一次程序,变量以多少增量或减量进行变化. 示例:计算1+2+3+4....

自学Java第二周的总结

在这一周里我在网上学习了java的对象和类,了解了对象与类以及简单的用法.对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等.类是一个模板,它描述一类对象的行为和状态.此外我也学习并了解了关于修饰符的一些知识,Java语言提供了很多修饰符,主要分为以下两类:访问修饰符与非访问修饰符,当然我也记住了其的一些用法.同时我也学习了点顺序结构的程序语句.如果您想要同样的操作执行多次,,就需要使用循环结构.Java中有三种