博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础回顾
阅读量:6252 次
发布时间:2019-06-22

本文共 7724 字,大约阅读时间需要 25 分钟。

内容:

1、Java中的数据类型

2、引用类型的使用

3、IO流及读写文件

4、对象的内存图

5、this的作用及本质

6、匿名对象

 

 

 

1、Java中的数据类型

Java中的数据类型有如下两种:

  • 基本数据类型: 4类8种   byte(1) boolean(1) short(2) char(2) int(4) float(4) long(8) double(8)    注:括号内指某类型是几字节的
  • 引用数据类型:String、数组、集合(ArrayList) 、Scanner、自定义类型

基本数据类型和引用数据类型的区别:

  • 基本数据类型:声明时直接在栈内存中开辟空间并直接在当前内存中存放数据,赋值时传递的是传值的
  • 引用数据类型:声明时会将实际的数据存放在堆内存中,同时在栈内存中存放着在堆内存中的首地址,赋值时传递的是引用的

 

 

2、引用类型的使用

(1)String

String的API:

1 引用类型String中的方法(4532) 2 第一组: 判断方法 3           boolean equals(String str);            // 比较两个字符串的内容是否相等 4           boolean equalsIgnoreCase(String str);     // 比较两个字符串的内容是否相等(忽略大小写) 5           boolean startsWith(String subStr);       // 判断某个字符串是否以指定的子串开头 6           boolean endsWith(String subStr):        // 判断某个字符串是否以指定的子串结尾 7   8 第二组: 获取方法 9           int length();                           // 获取字符串中字符个数10           char charAt(int index);                      // 谋取字符串某一个字符(指定下标)11           String subString(int startIndex);              // 从指定下标开始截取字符串,直到字符串末尾12           String subString(int startIndex, int endIndex);     // 从指定下标开始截取字符串,到指定下标结束(左闭右开)13           int indexOf(String subStr);                    // 获取子串第一次出现的下标14   15 第三组: 转换方法16           String toLowerCase();    // 转成小写串17           String toUpperCase();    // 转成大写串18           Char[] toCharArray();    // 变成字符数组19   20 第四组: 其他方法21           String trim();                     // 去掉字符串两端的空格22           String[] split(String str);        // 切割字符串

使用代码如下:

1 // String的API使用 2 public class code2_useString { 3     public static void main(String[] args) { 4         String s1 = "ABC", s2 = "ABC", s3 = "abc"; 5         // equals equalsIgnoreCase 6         System.out.println(s1.equals(s2) + " " + s1.equals(s3) + " " 7                 + s1.equalsIgnoreCase(s3)); 8         // startsWith endsWith 9         System.out.println(s1.startsWith("A") + " " + s1.endsWith("BC"));10         System.out.println(s3.startsWith("A") + " " + s3.endsWith("BC"));11         // length12         System.out.println(s1.length());13         // charAt14         for (int i = 0; i < s1.length(); i++) {15             if (i != s1.length() - 1) {16                 System.out.print(s1.charAt(i) + "-");17             } else{18                 System.out.print(s1.charAt(i));19             }    20         }21         System.out.println();22         // subString23         System.out.println(s1.substring(0));24         System.out.println(s1.substring(0, 1));25         System.out.println(s1.substring(1, 2));26         // indexOf27         System.out.println(s1.indexOf("BC"));28         System.out.println(s1.indexOf("不存在"));29         // toLowerCase toUpperCase toCharArray30         System.out.println(s1.toLowerCase());31         System.out.println(s3.toUpperCase());32         char[] chas = s1.toCharArray();33         // trim split34         String str = "abc test 666";35         System.out.println(str.trim());36         String[] strs = str.split(" ");37         for(int i=0;i

 

(2)数组

1 // Java数组使用 2 public class code3_useArray { 3     // print all elements of array  4     public static void printArray(int[] arr) { 5         if (arr == null) { 6             return; 7         } 8         for (int i = 0; i < arr.length; i++) { 9             System.out.print(arr[i] + " ");10         }11         System.out.println();12     }13     14     // find the max value in arr 15     public static int findMax(int[] arr){16         int max = Integer.MIN_VALUE;17         for(int i=0;i

 

(3)集合(ArrayList)(动态数组)

1 // ArrayList使用 2 public class code4_useArrayList { 3     public static void main(String[] args) { 4         // 创建ArrayList 5         ArrayList list = new ArrayList(); 6  7         // 添加元素 8         list.add("1"); 9         list.add("2");10         list.add("3");11         list.add("4");12         // 将下面的元素添加到第1个位置13         list.add(0, "5");14 15         // 获取第一个元素16         System.out.println("the first element is: " + list.get(0));17 18         // 删除"3"19         list.remove("3");20 21         // 获取大小22         System.out.println("Arraylist size=: " + list.size());23 24         // 判断包含25         System.out.println("ArrayList contains 3 is: " + list.contains("3"));26 27         // 设置第二个元素为1028         list.set(1, "10");29 30         // 遍历ArrayList31         for (Iterator iter = list.iterator(); iter.hasNext();) {32             System.out.println("next is: " + iter.next());33         }34 35         // 将ArrayList转换成数组36         String[] arr = (String[]) list.toArray(new String[0]);37         for (int i = 0; i < arr.length; i++) {38             String str = arr[i];39             System.out.println("str: " + str);40         }41 42         // 清空ArrayList43         list.clear();44         // 判空45         System.out.println("ArrayList is empty: " + list.isEmpty());46     }47 }

 

(4)Scanner(输入)

1 // Scanner使用 2 /* 3     next():只读取输入直到空格。它不能读两个由空格或符号隔开的单词。 4     此外,next()在读取输入后将光标放在同一行中。(next()只读空格之前的数据,并且光标指向本行) 5  6     nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。 7     读取输入后,nextLine()将光标定位在下一行。 8   9  * */10 public class code5_useScanner {11     public static void main(String[] args) {12         Scanner input = new Scanner(System.in);13         System.out.println("a.请输入一个字符串(中间能加空格或符号)");14         String a = input.nextLine();15         16         System.out.println("b.请输入一个字符串(中间不能加空格或符号)");17         String b = input.next();18         19         System.out.println("c.请输入一个整数");20         int c;21         c = input.nextInt();22         23         System.out.println("d.请输入一个double类型的小数");24         double d = input.nextDouble();25         26         System.out.println("e.请输入一个float类型的小数");27         float e = input.nextFloat();28         System.out.println("按顺序输出abcde的值:");29         System.out.println(a);30         System.out.println(b);31         System.out.println(c);32         System.out.println(d);33         System.out.println(e);34     }35 }

 

 

3、IO流及读写文件

(1)什么是输入输出流

  • 输出流: 数据从Java程序到文件中
  • 输入流: 数据从文件到Java程序中

(2)FileWriter和FileReader

  • FileWriter:文件的字符输出流,写数据(字符、字符串、字符数组)
  • FileReader:文件的字符输入流,读数据(字符、字符数组)

两者API如下:

1 FileWriter: 2   write(int ch);                   // 写一个字符(可以写字符的ASCII码值) 3   write(char[] chs);                 // 写一个字符数组 4   write(String s);                  // 写一个字符串 5   write(char[] chs,int startIndex,int len);   // 写一个字符数组的一部分 6   write(String s,int startInex,int len);     // 写一个字符串的一部分 7  8 FileReader: 9   int read();          // 读取一个字符10   int read(char[] chs);    // 一个读取一个字符数组,返回值表示实际读取到的字符的个数

 

(3)文件路径

  • 相对路径:相对于当前工程或当前项目
  • 绝对路径 :在计算机上的绝对位置(以盘符开头)

 

 

4、对象的内存图

(1)Java内存分类 

  • 栈stack:存基本数据类型和引用
  • 堆heap:存对象(new出来的)
  • 方法区:加载字节码文件(.class文件)
  • 本地方法区:Java调用操作系统功能
  • 寄存器区:Java操作CPU
  • 注:上述区域中本地方法区和寄存器区基本上平时用不到

 

(2)Java内存示意图

 

 

5、this的作用及本质

  • 作用:区分局部变量和成员变量的同名的情况(一般this.xxx就是指成员变量,没有this修饰的一般是局部变量)
  • 本质:this代表一个对象,具体是哪一个对象,那么由方法的调用者决定

 

 

6、匿名对象

(1)什么是匿名对象

匿名对象:指没有名字的对象

语法上:只创建对象,而不是变量来接收

比如:new Dog(); new Student();

 

(2)匿名对象的使用

  • 匿名对象也是一个对象,具有对象的所有功能
  • 一个匿名对象只能使用一次,第二次使用就是一个新的匿名对象
1 public class Person{ 2     public void eat(){ 3         System.out.println(); 4     } 5 } 6  7 // 创建一个普通对象 8 Person p = new Person(); 9 // 创建一个匿名对象10 new Person();

 

(3)匿名对象的特点

  • 创建匿名对象直接使用,没有变量名:new Person().eat()
  • 匿名对象在没有指定其引用变量时,只能使用一次
  • 匿名对象可以作为方法接收的参数、方法返回值使用
1 class Demo { 2     publicstatic Person getPerson(){ 3         //普通方式 4         //Person p = new Person();     5         //return p; 6          7         //匿名对象作为方法返回值 8         returnnew Person();  9     }10     11     publicstaticvoid method(Person p){}12 }13 14 class Test {15     publicstaticvoid main(String[] args) {16         //调用getPerson方法,得到一个Person对象17         Person person = Demo.getPerson();18         19         //调用method方法20         Demo.method(person);21         //匿名对象作为方法接收的参数22         Demo.method(new Person());23     }24 }

 

转载于:https://www.cnblogs.com/wyb666/p/10285463.html

你可能感兴趣的文章
痞子衡嵌入式:ARM Cortex-M文件那些事(4)- 可重定向文件(.o/.a)
查看>>
centos7 源码安装nginx
查看>>
php 下载word 含图片
查看>>
栈的顺序存储实现
查看>>
编年史:OI算法总结
查看>>
IOS Exception 1(RangeText="[SKTexture]()")
查看>>
IOCP基础封装
查看>>
kendo column chart
查看>>
codeforces 721D Maxim and Array
查看>>
sass学习
查看>>
六、使用函数
查看>>
Windows Server 2012 蓝屏 Wpprecorder.sys 故障
查看>>
ImageMagick 批量处理图片脚本
查看>>
MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
查看>>
【IT公司笔试面试】75道逻辑推理题及答案
查看>>
免费馅饼
查看>>
《Typecript 入门教程》 1、类
查看>>
使用 xsd.exe 命令工具将 xsd 架构生成 类(CS) 文件
查看>>
分享一个漂亮的ASP.NET MVC黑色界面框架
查看>>
求出0~999之间的所有“水仙花数”并输出
查看>>