java基础知识(一)
包含内容:
- 基础语法
- 流程控制
- 方法
- 面向对象
- 输入方法
- 数组
- Random类的使用
- Arraylist集合
- 字符串
- static
一.基础语法、流程控制、方法、面向对象:本人认为这些部分和c#及其他语言极度相似,不在此处再次解释
二.输入
- java的输入依靠Scanner类,我们通常利用Scanner类中的next() 和nextline()方法去读取用户输入,利用hasnextxxx()方法去判断输入数据类型
-
import java.util.Scanner; public class demo1 { public static void main(String[] args) { //创建 Scanner 对象的基本语法 Scanner scanner = new Scanner(System.in); //next()和nextline()方法的区别 /* next(): 1、一定要读取到有效字符后才可以结束输入。 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。 nextLine(): 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。 2、可以获得空白。 */ String str = new String(); str = scanner.nextLine(); System.out.println(str); String str2 = new String(); str2 = scanner.next(); System.out.println(str2); //在使用完scanner后建议关闭scanner scanner.close(); } }
三.数组
- 数组的常用定义方法和遍历
import java.util.Scanner; public class demo1 { public static void main(String[] args) { //动态定义数组 //数据类型[] 数组名称 = new 数据类型[数组长度] int [] a1 = new int[5]; Scanner scanner = new Scanner(System.in); for (int i = 0; i < a1.length; i++) { a1[i] = scanner.nextInt(); } //静态定义 //数据类型[] 数组名称 = {...}; int[] a2 = {1,2,3,4,5}; //数组遍历 //1.fori for (int i = 0; i < a1.length; i++) { System.out.println(a1[i]); } //2.foreach for(int i : a2){ System.out.println(i); } scanner.close(); } }
四.Random的使用
- 什么事random类,random是用来产生随机数的一个类,使用方法与scanner类相似
-
import java.util.Random; public class demo1 { public static void main(String[] args) { Random random = new Random(); //random中的nextInt()方法有一个重载 int[] a = new int[10]; for (int i = 0; i < 10; i++) { a[i] = random.nextInt();//在int的范围中产生谁技术 } int[] a2 = new int[10]; for (int i = 0; i < 10; i++) { a[i] = random.nextInt(10);//在0~9中产生随机数 } } }
五.ArrayList
- 什么是ArrayList:ArrayList是java中可变数组的实现,ArrayList中的元素为泛型,泛型只能是引用类型,存储int等基本类型通常用自动装箱、拆箱机制。
- 值得注意的是,ArrayList中的add方法是必定添加成功的,在今后学习中其他集合则要求用boolean success = list.add() 来判断是否添加成功
-
import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class demo1 { public static void main(String[] args) { //创建list,泛型为int ArrayList<Integer> list = new ArrayList<>(); //add()方法添加元素 for (int i = 0; i < 10; i++) { list.add(i); } //遍历list for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); //get()方法得到元素 } //删除元素 list.remove(9); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } }
六.String类字符串
- 程序中所有双引号字符串都是String类的对象
- String字符串的内容不可变(你以为的更改其实是改变了引用地址)
- 字符串在效果类似char()字符数组,在底层中都是byte[]数组
- 字符串的创建方法
import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class demo1 { public static void main(String[] args) { //空白字符串 String str1 = new String(); //根据字符数组创建 char[] a1 = {'a','b','c'}; String str2 = new String(a1); //根据字节数组创建 byte[] a = {91,98,99}; String str3 = new String(a); //直接创建 String str4 = "java"; } }
-
字符串的 常用方法
import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class demo1 { public static void main(String[] args) { //字符串的对比 //public boolean equals(Object obj)区分大小写 //通常使用“abc”.equals(str)形式 String str1 = "java"; String str2 = "hello"; System.out.println(str1.equals(str2)); //public boolean equalsIgnoreCase(Object obj)忽略大小写(仅限英语) System.out.println(str1.equalsIgnoreCase(str2)); //字符串获取 String str3 = "abcdefghijk"; //public int length();获取字符串长度 int Length = str3.length(); System.out.println(Length); //public String concat(String str):等效于str1+=str2 str3.concat(str2); System.out.println(str3); //public char charAt(int index):得到索引位置的字符 System.out.println(str3.charAt(0)); //public int indexOf(String str) 查找参数字符串在当前字符串中第一次出现的位置,如果没有则返回-1 System.out.println(str3.indexOf("abc")); //public String substring (int index)截取参数一直到字符串末尾的字符串,public String substring (int star,int end);截取star到end-1的字符串 System.out.println(str3.substring(4)); System.out.println(str3.substring(0,2)); //public char[] tocharArray():将当前字符串拆分为字符数组 //public byte[] tobytes():将当前字符串拆分为字节数组 //public String replace(oldstring ,newstring )将当前字符中oldstring替换为newstring 并返回新字符串 //public String[] split(String regex),根据regex将字符串切分为若干部分,注意这里的regex要用正则表达式 } }
七.static关键字
- 在一个类中字段字段用上static后,该字段将会属于该类而不是对象
- 静态代码块:在使用该类时,静态代码块只使用一次
public class demo1 {
public static void main(String[] args) {
//静态变量的使用为类名.方法名
Person.print();
}
}
public class Person {
static void print(){
System.out.println(111);
}
}
public class Person {
static {//静态代码块的定义
System.out.println(222);
}
}