6.Java 中的容器(重点)

a.变量:变量是一个容器,它存储的单个值 //int i=3;

1.局部变量:定义在方法中,没有默认值

2.成员变量:定义在类中方法外,这个事物的属性(特征)定义为成员变量,有默认值

class Hero{

String heroName;//类中所有的方法都能使用

public void method(int m){//方法形参上的变量也是局部变量,仅能在方法中

int i=3;//仅能在方法中使用

}

public void method2(){

int i=3;

}

public void method3(){

int i=3;

}

}

b.对象:对象也是一个容器,它存储的所属类的各个属性值//Phone p=new Phone();//品牌,价格

A:什么是面向过程

面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。

B:什么是面向对象

面向对象思想就是不断的创建对象,使用对象,指挥对象做事情。(如果有对象,直接用对象,对我们直接提供服务)

A:面向过程:

强调的是过程,所有事情都需要自己完成

B:面向对象:

是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做)

可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的)

将我们从执行者变成了指挥者角色发生了转换

c.数组:数组存储同一种数据类型的容器// int[] arr={1,2,4,5,6};

1.每个元素都对应一个角标:String[] jiJie={"冬季","春季","夏季","秋季"}

2.获取数组的长度:length 属性

3.两种初始化方式:

静态初始化:

int[] arr={1,2,3,4};

int[][] arr2={{1,2,3},{4,5,6}}

动态初始化:

int[] arr=new int[4];

int[][] arr2=new int[3][4];//有三个一维数组,每个一维数组的长度都是4

h.当方法参数是引用类型,那么调用方法时需要得是该引用类型的对象.

当方法的返回值是引用类型,那么调用方法,我们要返回的是一个对象

A:封装概述

是面向对象三大特征之一

是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。就像刚才说的年龄。

B:封装原则:

将不需要对外提供的内容都隐藏起来。

把属性隐藏,提供公共方法对其访问。

成员变量private,提供对应的getXxx()/setXxx()方法

C:好处:

通过方法来控制成员变量的操作,提高了代码的安全性

把代码用方法进行封装,提高了代码的复用性

f.String:字符串.由多个字符组成的一串数据(字符串其本质是一个字符数组)

构造方法:

String(String orininal) : 把字符串数据封装成字符串对象

String(char[] value) : 把字符数组的数据封装成字符串对象

String(char[] value,int index,int count) :把字符数组中的一部分封装成字符串对象.(从0索引开始取chs.length(5)个char类型的数据封装成String 对象)

注意: 通过构造方法创建字符串对象是在堆内存.

直接赋值方法创建对象是在方法区的常量池.

== : 1.基本数据类型:比较得是基本数据类型的值是否相同

2.引用数据类型:比较得是引用数据类型的地址值是否相同

Object :是类层次结构中的跟类,所有的类都直接或者间接的继承该类.

注意:如果一个方法形式参数是Object,那么这里我们就可以传递它的任意的子类对象.

String类的判断功能:

boolean equals(Object obj) :比较字符串的内容是否相同.

boolean equalsIgnore(String str):比较字符串的内容是否相同,忽略大小写

boolean starWith(String str) : 判断字符串对象是否以指定的str开头

boolean endsWith(String str) : 判断字符串对象是否以指定的str结尾

boolean contains(String str) : 判断是否包含传入字符串,包含为true

String类的获取功能:

int length() : 获取字符串的长度,其实也就是字符个数.

char charAt(int index) : 获取指定索引处的字符

int indexOf(String str) : 获取str在字符串对象中第一次出现的索引.(如果没有找到就返回-1);

String substring(int start) : 从start开始截取字符串

String substring(int start,int end) : 从start开始,到end结束截取字符串,包括start,不包括end.

String类的转换功能:

char[] toCharArray() : 字符串转换为字符数组

String toLowerCase() : 把字符串转换为小写字符串

String toUpperCase() : 把字符串转换为大写字符串

String类的其他功能:

String trim() : 去除字符串两端空格.

String[] split(String str) : 按照指定符号分割字符串

boolean contains(String str) : 判断是否包含传入字符串,包含返回true,不包含返回false;

String replace(String old,String new) : 返回一个新的字符串,它是通过用String new替换此字符串中出现的所有String old得到的.

扩展:

static String format(Locale l,

String format,

Object... args))

意思是: 有两部分组成,一个部分是一种格式由字符串形式表示出来,这个字符串里面有占位符和其他字符组成,占位符表示一个变量,(占位符的格式是百分号%,百分号后面再接一个字母,来表示这个变量是什么数据类型)

第二个部分是变量解释,解释变量的顺序,就是占位符从前到后的顺序,一个解释对应一个占位符.

byte[] getBytes(String charsetName) : 使用指定的字符集将此String 编码为byte序列,并将结果存储到一个新的byte数组中.

d.集合(ArrayList):集合中存储的是尖括号(泛型)中的类型的数据// ArrayList<String> al=new ArrayList<String>();

a.定义:

ArrayList<只能写引用数据类型,写什么类型代表集合中存储什么类型> al=new ArrayList<同前面一致>();//化学实验室瓶子上的标签

b.方法回顾:(Create Read Update Delete)

1.增:

add(尖括号中的元素类型 ele)

add(int index,尖括号中的元素类型 ele)

2.删:

remove(尖括号中的元素类型 ele)//按照元素的内容删除该元素

remove(int index)//按照指定的索引删除

3.改:

set(int index,尖括号中的元素类型 ele)

4.查:

尖括号中的元素类型 get(int index)

int size()

boolean contains(String str) : 此集合中是否包含指定的子字符串,如果是返回true,否则false;

注意:

直接打印集合的引用:

如果是java写好的数据类型的话,会直接打印元素

如果是自定义类,将打印地址值

String用+= 拼接字符串耗费内存的原因:

每次拼接都会产生新的字符串对象,而利用StringBuilder来桥接字符串自始至终用的都是同一个StringBuilder容器.

e.字符缓冲序列(StringBuilder):它里面可以添加任意类型数据,但是最终所有的数据都是以字符存储的//StringBuilder sb=new StringBuilder()

1.应用场景: 只要拼接字符串优先考虑StringBuilder,不要再用+=

把数组拼接成[1, 2, 3]

2.构造方法:

a. StringBuilder sb=new StringBuilder();//创建一个空的容器

b. StringBuilder sb2=new StringBuidler("abc");//容器一有,里面就装有abc

3.成员方法:

a.StringBuilder append(任意数据类型):不断向StringBuilder容器末尾追加

返回的是已经装了元素的StringBuilder容器

b.StringBuilder reverse():返回的是内容已经反转的StringBuilder容器

c.String toString()//将StringBuilder中的数据返回一个字符串

d.delete(int start,int end)//将[start,end-1]之间的字符全部删掉

length(): 返回长度

int indexOf(String str) : 获取str在字符串对象中第一次出现的索引

包装类:

byte      Byte

short     Short

int       Integer

long      Long

float     Float

double      Double

boolean     Boolean

char      Character

调用方法用快捷键输出返回类型: ctrl + 2 + L

扩展

add方法的返回值是boolean 类型,返回得是存储状态.

java基础第三篇的更多相关文章

  1. Java基础:三步学会Java Socket编程

    Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛        第一步 ...

  2. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  3. java基础(三章)

    java基础(三章) 一.基本if结构 1.流程图 l  输入输出 l  判断和分支 l  流程线 1.1              简单的if条件判断 if(表达式){            //表 ...

  4. Java基础2-容器篇

    java基础2-容器篇 1.页首请关注 思维导航大纲 1.常用容器的类型层次结构 2.理解容器的常用思维大纲 a.空间 时间 concurrentModifyException 加载因子 3.常用类源 ...

  5. NHibernate 映射基础(第三篇) 简单映射、联合主键

    NHibernate 映射基础(第三篇) 简单映射.联合主键 NHibernate完全靠配置文件获取其所需的一切信息,其中映射文件,是其获取数据库与C#程序关系的所有信息来源. 一.简单映射 下面先来 ...

  6. JAVA基础(三)—— 输入输出处理

    JAVA基础(三)-- 输入输出处理 1 输入解析 //Scanner获取输入 import java.util.Scanner; Scanner s = new Scanner(System.in) ...

  7. Java实习生常规技术面试题每日十题Java基础(三)

    目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...

  8. Java基础之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

  9. Java 基础(三)| IO流之使用 File 类的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...

随机推荐

  1. Struts2和Spring MVC 区别 今天面试被问到了

    虽然说没有系统的学习过Spring MVC框架, 但是工作这么长时间, 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比 ...

  2. python数据类型之列表(list)和其常用方法

    列表是python常用数据类型之一,是可变的,可由n = []创建,也可由n = list()创建,第一种方法更常用. 常用方法总结: # 创建方法 n = [] 或者 n = list() # in ...

  3. 引用&符号详解

    变量的引用 PHP 的引用允许你用两个变量来指向同一个内容. 例一: <?php $a="2010"; $b =&$a; echo $a;//这里输出:2010 ec ...

  4. matlab图形handle

  5. nginx的常用负载均衡算法,分别是

    随机分配,hash一致性分配,最小连接数分配,主备分配 随机,轮训,一致性哈希,主备,https://blog.csdn.net/liu88010988/article/details/5154741 ...

  6. Diango 一——URL

    内容概要 1.web框架初识 2.MTV模式 3.Django创建流程和命令行工具 4.配置文件  settings 5.视图函数  views 6.路由系统  URL 7.模板系统  templat ...

  7. bzoj3262陌上花开 三维数点 cdq+树状数组

    大早上的做了一道三维数点一道五位数点,神清气爽! 先给一维排序,变成一个奇怪的动态的二维数点(相当于有一个扫描面扫过去,导致一系列的加点和询问) 然后cdq分治,再变回静态,考虑前半段对后半段的影响 ...

  8. php生成Exeple表demo

    <?php require "./PHPExcel.php"; $dir=dirname(__FILE__); $objPHPExcel=new PHPExcel(); $o ...

  9. Leetcode 466.统计重复个数

    统计重复个数 定义由 n 个连接的字符串 s 组成字符串 S,即 S = [s,n].例如,["abc", 3]="abcabcabc". 另一方面,如果我们可 ...

  10. 常用类--Date日期类,SimpleDateFormat日期格式类,Calendar日历类,Math数学工具类,Random随机数类

    Date日期类 Date表示特定的时间,精确到毫秒; 构造方法: public Data() public Date(long date) 常用方法: public long getTime() pu ...