Java学习笔记(03)

一.回顾运算符:

一.控制语句

1.1 顺序结构 (最常见的)

特点:代码从上往下依次执行

1.2 选择结构 :

<1.if 判断语句 :

格式一

/*
1.if(判断条件){
2.    如果符合条件执行的代码;
3.    执行的代码块1;
4.    执行的代码块2;
5.    ……………….;
6.    执行的代码块n;
7.}
*/

格式二

/*
if(判断条件){
      如果符合条件执行的代码;
      执行的代码块1;
   } else{
      执行的代码块2;
}
*/

格式三

/*
if(外部的条件成立) {
    执行代码块1
    if(内部的条件成立){
        执行代码块2
    }
}
*/

<2.switch语句

switch 判断语句:

Switch语句使用的注意事项:

1.每一个语句结束后需要有一个break,防止switch的穿透

2.switch语句中用于判断的额变量只能是int ,short,char,byte String(jdk7之后才有)

Case后面跟的数据必须是常量。

switch语句的优点 :语句结构清晰,运行速率快。

switch语句的缺点:

If能过做的switch不一定能做,switch能够做的if一定可以实现

1.3循环结构

/*
<1.while语句
While循环 : 先判断在执行
结构:
while(循环条件){
循环体。
}
*/

<2.do while语句

/*
do while循环:先执行后判断,循环体一定会执行一次.
结构:
do{
循环体;
}while(循环条件);
*/

<3.for语句

/*
for循环:
  结构:
  for(;;){
     死循环
  }
}
*/

二、数组

//定义一个int类型的数组
        //数组的长度可以指定也可以不是定
        int[] arr = new int[10];
        //数组中添加元素
        arr[0] = 1;
        arr[1] = 2;
        //如果元素没有被赋值 默认以0来填充。
//-------------数组的初始化方式-------------
        //1.静态初始化 : 这个值给多少就是多少,不能过改变
            int[] arr1 = {1,2,3,4,5,6};
        //2.动态初始化 : 不可变的数组  可变数组--->集合  ArrayList
            int[] arr = new int[10];
        //定义一个字符串数组
        //默认为:null
            String[] strArr = new String[10];
//遍历数组
        for(int i = 0 ; i <arr.length ;i++){
            System.out.println(arr[i]);
        }

三、数组的内存分析

1、数组的内存管理

用一块连续的空间来存储元素。

基本原理:

//创建一个int类型的数组
        //arr : 是一个变量  只是数组的一个引用地址
        //局部变量存在栈中
        //成员变量 -- 属性  --- > 对堆区中
        //静态变量  --- >  共享区域
        int[] arr = new int[2];
        arr[1] = 10;

2、数组的使用工具:Arrays

常用来查找元素和排序

int[] arr = {1,2,4,5};
int num = 3;    //查找数组中是否有某一个数
int result = Arrays.binarySearch(arr,num);//对应索引位置
Arrays.sort(arr);  //用Arrays排序
for (int i = 0;i < arr1.length ;i++ )  {
            System.out.println(arr[i]);
}

3、二维数组

java中数组一样存在多维 : 二维数组 ,三维数组,....

<1.二维数组的定义

 数据类型[][] 数组名 = new 数据类型[][];

动态初始化:

数据类型[][] 数组名 = new 数据类型[][];

注意 :前面中括号中数值指的是二维数组元素个数后面一个是指二维数组中一维数组的元素个数。

静态初始化:

数据类型[][] 数组名称 = {{元素1,..},{元素1,..},{元素1,..}};

//二维数组中的元素一定是一维数组。
            int[][] arr = new int[3][4];
            arr[0][0] = 1;
            int[][] arr1 = {{1,2,3},{2,3},{1,4}};
            int num = arr1[2][1];  // 4
            //想要接收二维数组中的元素 : 需要用一个一维数组来接收。
            int[] arr2 = new int[];
            arr2 = new int[3];  // 定义了一个二维数组 ,数组中的元素维3.
//初始化数组int arr3[] = {};  不推荐这样写

<2.总结:数组的特点-->

1.数组中只能存同一种数据类型的数据。

2.数组他会给存入的元素默认分配一个索引值 ,索引从0开始。

3.数组一旦初始化,长度就固定了。

4.数组中元素的内存地址是连续的

2、对象

1、对象

 万物皆对象,是真实存在的唯一的事物

面向对象:处理程序的过程

面向对象的核心 : 找到合适的对象做合适事情

语法:

//通过自定义的类来创建一个对象

格式:

类名  对象名(变量名) = new 类名();

2、类

类是模子,用来描述对象的属性(特征)和方法(行为)

Java程序的实现都是以class类名为组织单元

定义类:类名à 类的属性à 类的方法

语法:

类的定义格式 :

class 类名 {

属性(成员变量) : 描述事物的公共的特点。

方法 : 描述事物的行为 (做什么事情)

}

3、属性

对象自身 的各种特征 是抽象的、客观存在的

//属性 格式 : 数据类型 变量名
     String color;
     String name;
     int num;

4、方法

对象执行的操作/行为

语法:

修饰符  返回值类型  方法名  (参数列表){具体的实现}

  public  : 公开的方法 , 任何人都可以访问

private : 私有的,只能自己访问。

public void run(){
        System.out.println("司机开车了,请系好安全带");
};

5、成员变量和局部变量

1.成员变量和局部变量额区别:

<1定义的位置 :

1.定义在类中,方法外。

2.局部变量是定义在方法中。

<2.作用上:

1.成员变量是用来描述同一类事物(对象)的公共属性。

2.局部变量就是提供一个变量给方法使用

成员变量 : 作用范围是整个类中 ,如果需要在当前类中使

用成员变量,直接拿到变量名就可以使用

//方法
    public void eat(){ //在括号里定义的参数也是局部变量
        int age; //局部变量
        age = 20;
        System.out.println(name +"在吃饭,今年刚满:"+age);
    }

<3.生命周期 :

1.成员变量随着对象的创建而创建,随着对象的消失而消失。

2.局部变量随着方法调用而创建,出了方法的作用域就消失。

<4.初始值来区分:

1.成员变量,如果你没有赋值,它是有默认值的。

int   默认是0

float 默认是0.0f

double  默认是 0.0

boolean 默认 false

char    默认 ‘ ‘

String (引用类型)null;

2.局部变量:

局部变量是没有初始值的,必须初始化才能使用

成员变量在当前类中是可以直接通过变量名来使用,如果变量需要在其他类中使用,就需要创建对象(目前是这个样子的)

时间: 2024-08-28 02:30:18

Java学习笔记(03)的相关文章

Java学习笔记3-操作符

Java基本操作符:+.-.*./.%.=.==.!=.+=.-=. 优先级:先乘除后加减,如果是连接符+号会优先往前匹配,比如 a+++++b,会被解释称 a++ ++ +b,所以会报错,需要自行使用括号隔离为 (a++) + (++b). 对象的引用如果赋值给了对象的引用后,2 个对象将指向同一个引用,有一个对象的引用重新赋值后将同时影响到另一个对象,比如 ClassName classA = new ClassName(); ClassName classB = new ClassName

java学习笔记10--泛型总结

java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note10.html,转载

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

Java学习笔记心得——初识Java

初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开始走进Java的世界.  Java产生的历史 Java来自于Sun公司的一个叫Green Project中撰写的程序语言,全球信息网(World Wide Web)兴起,Java Applet成为网页互动技术的代表,特别适合于Internet应用程序开发. Java语言的特点 1.面向对象 这是Java最重要

java学习笔记8--接口总结

接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note8.html,转载请注明源地址. 生活中的接口: 什么是接口? 一个Java接口是一些方法特

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

java学习笔记一

只记录一些我认为比较必要,容易出错的地方.(不断更新中) 内存:分为四段,代码段code segment,数据段data segment,栈stack, 堆heap.记住如下图 数据类型: 1.java整形常量默认为int类型,当使用long类型时,因此需要添加“l”或“L”,一般用大写,小写像1.如long i = 888888888888L 2.浮点数时会默认为double类型,因此使用float时需要添加f.如 float i = 0.123f 3.java支持大数运算. 强制转换 flo

java学习笔记(三)java中的修饰符abstract、static与final

一.四种访问级别的访问范围 访问级别 访问修饰符 同类 同包 子类 不同的包 公开 public 受保护 protected 默认 没有访问修饰符 私有的 private 二.使用abstract修饰符需要遵守的语法规则 1.抽象类中可以没有抽象方法,但是包含抽象方法的类必须定义为抽象类,即用abstract修饰: 2.抽象类跟抽象方法不能被final修饰符修饰: 3.抽象类中可以有非抽象方法,因为继承抽象类的子类必须重写父类中所有的抽象方法,因此抽象类中不能有抽象构造方法和抽象静态方法: 4.

Java学习笔记day_01

Java学习笔记(复习整理) 虽然不知道该怎么写,但是不起步就永远不知道该怎么做..刚开始可能会写的很差劲,但会一点一点变好的. 本笔记是以我按照传智播客的视频和Java核心思想来学习,前面的基础部分主要是用于个人的复习使用的. 第一段代码:HelloWorld public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }

【Java学习笔记之二十六】深入理解Java匿名内部类

在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.如何初始化匿名内部类.匿名内部类使用的形参为何要为final. 一.使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部类我们必须要继承一个父类或者