静海网站开发,企业单位网站建设内容需要什么,营销引流100个技巧,公众号里原文单发到dede网站上java基础语法整理 一、数组二、面向对象三、字符串1.String常见成员方法2.使用小案例用户登录案例遍历字符串案例统计字符次数案例字符串拼接案例手机号屏蔽 四、集合 链接: java基础语法整理 -----上
一、数组
1.从概念谈起
概念#xff1a;指的是一种容器#xff0c;可以… java基础语法整理 一、数组二、面向对象三、字符串1.String常见成员方法2.使用小案例用户登录案例遍历字符串案例统计字符次数案例字符串拼接案例手机号屏蔽 四、集合 链接: java基础语法整理 -----上
一、数组
1.从概念谈起
概念指的是一种容器可以同来存储同种数据类型的多个值。但是数组容器在存储数据的时候需要结合隐式转换考虑。比如 定义了一个int类型的数组。那么boolean。double类型的数据是不能存到这个数组中的但是byte类型short类型int类型的数据是可以存到这个数组里面的。 建议容器的类和存储的数据类型保持一致。举例 整数1 2 3 4 56 就可以使用int类型的数组来存储。小数1.1 1.2 1.3 1.4 就可以使用double类型的数组来存储。字符串aaa “bbb” “ccc” 就可以使用String类型的数组来存储。 2.数组的静态初始化
完整格式数据类型[] 数组名 new 数据类型[]{元素1元素2元素3元素4…};int[] arr new int[]{11,22,33};double[] arr new double[]{1.1,1.2,1.3};格式详解 数据类型 限定了数组以后能存什么类型的数据方括号表示现在定义的是一个数组数组名其实就是名字而已方便以后使用在起名字的时候遵循小驼峰命名法new就是给数组在内存中开辟了一个空间数据类型限定了数组以后能存什么类型的数据。前面和后面的数据类型一定要保持一致。方括号表示现在定义的是一个数组。大括号表示数组里面的元素。元素也就是存入到数组中的数据。多个元素之间一定要用逗号隔开。 错误写法
int[] arr new double[]{11,22,33};注意点: 等号前后的数据类型必须保持一致数组一旦创建之后长度不能发生变化 简化格式数据类型[] 数组名 {元素1元素2元素3元素4…}; 3。地址值
int[] arr {1,2,3,4,5};
System.out.println(arr);//[I6d03e736double[] arr2 {1.1,2.2,3.3};
System.out.println(arr2);//[D568db2f2打印数组的时候实际出现的是数组的地址值数组的地址值就表示数组在内存中的位置以[I6d03e736为例 [ 表示现在打印的是一个数组。I表示现在打印的数组是int类型的。仅仅是一个间隔符号而已。6d03e736就是数组在内存中真正的地址值。十六进制的 4.数组元素的访问
格式数组名[索引];作用 获取数组中对应索引上的值修改数组中对应索引上的值 代码示例
public class ArrDemo {/*数组中元素访问的格式数组名[索引];作用1.获取指定索引上对应的元素2.修改指定索引上对应的元素*/public static void main(String[] args) {int[] arr {1,2,3,4,5};// 需求获取arr数组中3索引上的值int number arr[3];System.out.println(number);System.out.println(arr[3]);// 需求将arr数组中3索引上的值修改为10arr[3] 10;System.out.println(修改之后为: arr[3]);}
}5.索引
索引也叫角标、下标。就是数组容器中每一个小格子对应的编号。索引的特点 索引一定是从0开始的连续不间断逐个1增长 6.数组的遍历
遍历就是把数组里面所有的内容一个一个全部取出来。数组的长度数组名.length;通用代码for(int i 0; i arr.length; i){// 在循环的过程中i依次表示数组中的每一个索引sout(arr[i]); // 就可以把数组里面的每一个元素都获取出来并打印在控制台上了。
}7.数组的动态初始化
格式数据类型[] 数组名 new 数据类型[数组的长度];举例// 1.定义一个数组存3个人的年龄年龄未知
int[] agesArr new int[3];// 2 .定义一个数组存班级10名学生的考试成绩考试成绩暂时未知考完才知道。
int[] scoresArr new int[10];数组的默认初始化值 整数类型0小数类型0.0布尔类型false字符类型‘\u0000’引用类型null 8.数组两种初始化方式的区别 静态初始化int[] arr {1,2,3,4,5}; 动态初始化int[] arr new int[3]; 静态初始化手动指定数组的元素系统会根据元素的个数计算出数组的长度。 动态初始化手动指定数组长度由系统给出默认初始化值。
使用场景 只明确元素个数但是不明确具体的数据推荐使用动态初始化。已经明确了要操作的所有数据推荐使用静态初始化。 举例 使用数组来存储键盘录入的5个整数。 nt[] arr new int[5];将全班的学生成绩存入数组中已知学生成绩为66,77,88,99,100 int[] arr new int[5];arr[0] 66;arr[1] 77;... 虽然可以实现但是太麻烦了。建议使用静态初始化int[] arr {66,77,88,99,100};9.数组常见问题
当访问了数组中不存在的索引就会引发索引越界异常。避免 针对于任意一个数组索引的范围 最小索引0最大索引数组的长度 - 1数组名.length - 1
public class ArrDemo6 {public static void main(String[] args) {int[] arr {1,2,3,4,5,5,5,5,5};//用索引来访问数组中的元素System.out.println(arr[1]);System.out.println(arr[10]);//ArrayIndexOutOfBoundsException}
}二、面向对象
什么是面向对象面向对象是一种设计思想当我们在代码中想要做一件事情的时候我们不会自己做可以想谁可以干这件事情谁能干就让谁去干我们忽略过程只注重结果
举例一当我们想要获取一个随机数我们不需要自己写随机算法我们想Java中已经定义好了一个类Random可以做这件事情那么就让Random去做我们不关心他是如何写随机算法的只关注最终结果即可举例二当我们想要获取键盘上输入的数字时我们不需要去写发现键盘配对键盘连接键盘组合按键验证数据监控键盘扫描键盘获取数据这些代码我们想Java中已经定义好了一个类Scanner可以做这件事情那么就让Scanner去做我们不关心他是如何跟键盘之间发生关系的只关注最终的结果即可 面向对象到底学什么 学习获取已有对象并使用学习如何自己设计对象并使用 面向对象中的两个核心思想 类 类是对现实生活中一类具有共同属性和行为的事物的抽象简单理解类就是对现实事物的一种描述类的组成 属性指事物的特征例如手机事物品牌价格尺寸行为指事物能执行的操作例如手机事物打电话发短信 类和对象的关系 类类是对现实生活中一类具有共同属性和行为的事物的抽象对象是能够看得到摸的着的真实存在的实体简单理解类是对事物的一种描述对象则为具体存在的事物 标准JavaBean类 用来描述一类事物的类叫做Javabean类带有main方法的类叫做测试类 标准类制作:
类名需要见名知意成员变量使用private修饰提供至少两个构造方法 无参构造方法带全部参数的构造方法 get和set方法提供每一个成员变量对应的setXxx()/getXxx()如果还有其他行为也需要写上 三、字符串
String的概述String 类代表字符串Java 程序中的所有字符串文字例如“abc”都被实现为此类的实例。也就是说Java 程序中所有的双引号字符串都是 String 类的对象。String 类在 java.lang 包下所以使用的时候不需要导包String类的特点 字符串不可变它们的值在创建后不能被更改 虽然 String 的值是不可变的但是它们可以被共享字符串效果上相当于字符数组( char[] )但是底层原理是字节数组( byte[] ) 获取字符串对象的方式 构造方法直接赋值
方法名说明public String()创建一个空白字符串对象不含有任何内容public String(char[] chs)根据字符数组的内容来创建字符串对象public String(byte[] bys)根据字节数组的内容来创建字符串对象String s “abc”;直接赋值的方式创建字符串对象内容就是abc
示例代码
public class StringDemo {public static void main(String[] args) {// public String()创建一个空白字符串对象不含有任何内容String s1 new String();System.out.println(s1: s1);// public String(char[] chs)根据字符数组的内容来创建字符串对象char[] chs {a, b, c};String s2 new String(chs);System.out.println(s2: s2);// public String(byte[] bys)根据字节数组的内容来创建字符串对象byte[] bys {97, 98, 99};String s3 new String(bys);System.out.println(s3: s3);// String s “abc”; 直接赋值的方式创建字符串对象内容就是abcString s4 abc;System.out.println(s4: s4);}
}两种方式的区别 通过构造方法创建通过 new 创建的字符串对象每一次 new 都会申请一个内存空间虽然内容相同但是地址值不同直接赋值方式创建以“”方式给出的字符串只要字符序列相同(顺序和大小写)无论在程序代码中出现几次JVM 都只会建立一个 String 对象并在字符串池中维护
1.String常见成员方法
1.字符串的比较
号的作用 比较基本数据类型比较的是具体的值比较基本数据类型比较的是具体的值 equals方法的作用 方法介绍 // 比较两个字符串内容是否相同、区分大小写
public boolean equals(String s) 示例代码 public class StringDemo {public static void main(String[] args) {// 构造方法的方式得到对象char[] chs {a, b, c};String s1 new String(chs);String s2 new String(chs);// 直接赋值的方式得到对象String s3 abc;String s4 abc;// 比较字符串对象地址是否相同System.out.println(s1 s2);System.out.println(s1 s3);System.out.println(s3 s4);System.out.println(--------);// 比较字符串内容是否相同System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));System.out.println(s3.equals(s4));}
}2.使用小案例
用户登录案例
需求已知用户名和密码请用程序实现模拟用户登录。总共给三次机会登录之后给出相应的提示
public class Test1 {public static void main(String[] args) {// 1.定义两个变量用来记录正确的用户名和密码String rightUsername Andy;String rightPassword 123456;//2.键盘录入用户名和密码for (int i 0; i 3; i) {//0 1 2Scanner sc new Scanner(System.in);System.out.println(请输入用户名);String username sc.next();System.out.println(请输入密码);String password sc.next();// 3.判断比较if (username.equals(rightUsername) password.equals(rightPassword)) {System.out.println(登录成功);// 如果正确循环结束break;} else {// 最后一次机会if(i 2){System.out.println(账户 username 被锁定请联系管理员);}else{// 不是最后一次机会System.out.println(用户名或密码错误登录失败,还剩下 (2 - i) 次机会);//2 1 0}}}}
}遍历字符串案例
需求键盘录入一个字符串使用程序实现在控制台遍历该字符串
public class Test2 {public static void main(String[] args) {// 1.键盘录入一个字符串Scanner sc new Scanner(System.in);System.out.println(请输入字符串);String str sc.next();System.out.println(str);// 2.遍历for (int i 0; i str.length(); i) {// i 依次表示字符串的每一个索引// 索引的范围0 ~ 长度-1// 根据索引获取字符串里面的每一个字符char c str.charAt(i);System.out.println(c);}}
}统计字符次数案例
需求键盘录入一个字符串统计该字符串中大写字母字符小写字母字符数字字符出现的次数(不考虑其他字符)
public class Test3 {public static void main(String[] args) {// 1.键盘录入一个字符串Scanner sc new Scanner(System.in);System.out.println(请输入一个字符串);String str sc.next();// 2.统计 --- 计数器count// 此时我要统计的有3样东西所以要定义3个计数器分别进行统计int bigCount 0;int smallCount 0;int numberCount 0;//得到这个字符串里面每一个字符for (int i 0; i str.length(); i) {// i 表示字符串中的索引// c 表示字符串中的每一个字符char c str.charAt(i);// 对c进行判断if (c a c z) {smallCount;}else if(c A c Z){bigCount;}else if(c 0 c 9){numberCount;}}// 3.当循环结束之后三个变量记录的就是对应的个数System.out.println(大写字符有: bigCount 个);System.out.println(小写字符有: smallCount 个);System.out.println(数字字符有: numberCount 个);}
} 字符串拼接案例
需求定义一个方法把 int 数组中的数据按照指定的格式拼接成一个字符串返回调用该方法并在控制台输出结果。例如数组为 int[] arr {1,2,3}; 执行方法后的输出结果为[1, 2, 3]
public class Test4 {public static void main(String[] args) {// 定义一个方法把 int 数组中的数据按照指定的格式拼接成一个字符串返回调用该方法// 并在控制台输出结果。例如数组为 int[] arr {1,2,3};// 执行方法后的输出结果为[1, 2, 3]int[] arr {1, 2, 3, 4, 5};String str arrToString(arr);System.out.println(str);}// 作用把一个数组变成字符串public static String arrToString(int[] arr) {String s ;// 拼接左括号s s [; // 拼接内容for (int i 0; i arr.length; i) {if(i arr.length - 1){// 如果是最后一个元素那么不需要拼接逗号空格s s arr[i];}else{// 如果不是最后一个元素需要拼接元素和逗号空格s s arr[i] , ;}}// 等循环结束之后再拼接最后一个右括号s s ];return s;}// 用来遍历数组public static void printArr(int[] arr) {System.out.print([);for (int i 0; i arr.length; i) {if (i arr.length - 1) {System.out.print(arr[i]);} else {System.out.print(arr[i] , );}}System.out.println(]);}
}手机号屏蔽
需求以字符串的形式从键盘接受一个手机号将中间四位号码屏蔽最终效果为137****8888
public class Test5 {public static void main(String[] args) {// 1.键盘录入一个手机号码Scanner sc new Scanner(System.in);System.out.println(请输入手机号码);String phoneNumber sc.next();// 2.截取手机号码中的前三位String star phoneNumber.substring(0, 3);// 3.截取手机号码中的最后四位// 此时我用substring方法是用1个参数的还是两个参数的1个参数的会更好// 因为现在我要截取到最后所以建议使用1个参数的。String end phoneNumber.substring(7);//4.拼接String result star **** end;System.out.println(result);}
}四、集合
集合和数组的优势对比 长度可变添加数据的时候不需要考虑索引默认将数据添加到末尾 ArrayList类概述 什么是集合提供一种存储空间可变的存储模型存储的数据容量可以发生改变ArrayList集合的特点长度可以变化只能存储引用数据类型泛型的使用用于约束集合中存储元素的数据类型 ArrayList的常用构造方法
方法名说明public ArrayList()创建一个空的集合对象
ArrayList的常用成员方法
方法名说明public boolean add(要添加的元素)将指定的元素追加到此集合的末尾public boolean remove(要删除的元素)删除指定元素,返回值表示是否删除成功public E remove(int index)删除指定索引处的元素返回被删除的元素public E set(int index,E element)修改指定索引处的元素返回被修改的元素public E get(int index)返回指定索引处的元素public int size()返回集合中的元素的个数
示例代码
public class ArrayListDemo {public static void main(String[] args) {// 创建集合ArrayListString array new ArrayListString();// 添加元素array.add(hello);array.add(world);array.add(java);// public boolean remove(Object o)删除指定的元素返回删除是否成功// System.out.println(array.remove(world));// System.out.println(array.remove(javaee));// public E remove(int index)删除指定索引处的元素返回被删除的元素// System.out.println(array.remove(1));// IndexOutOfBoundsException// System.out.println(array.remove(3));// public E set(int index,E element)修改指定索引处的元素返回被修改的元素// System.out.println(array.set(1,javaee));// IndexOutOfBoundsException// System.out.println(array.set(3,javaee));// public E get(int index)返回指定索引处的元素// System.out.println(array.get(0));// System.out.println(array.get(1));// System.out.println(array.get(2));// System.out.println(array.get(3)); // 自己测试// public int size()返回集合中的元素的个数System.out.println(array.size());// 输出集合System.out.println(array: array);}
}