java基础1

Java语言跨平台原理

实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)。java语言是跨平台的,java虚拟机不是跨平台的

JRE和JDK

JRE和JDK

常量

常量类型描述
字符串常量用双引号括起来的所有内容(“HelloWorld”)
字符常量用单引号括起来的一个字符(‘a’,’A’,’0’)
整数常量所有整数(12,-23)
小数常量所有小数(12.34)
布尔常量较为特殊,只有true和false
空常量null

基本数据类型(4类8种)

四类八种字节数数据表示范围
整型(精确)byte1-128~127 0101 0111
short2-32768~32767
int(默认)4-2147483648~2147483647
long8-263~263-1
浮点型(不精确)float4-3.403E38~3.403E38
double(默认)8-1.798E308~1.798E308
字符型char2表示一个字符,如(‘a’,‘A’,‘0’,‘家’)
布尔型boolean1只有两个值true与false

注意
1.整数默认是int类型,浮点数默认是double。
2.定义long类型数据的时候,要加L或者l,建议加L; 定义float类型数据的时候,要加F或者f,建议加F。

逻辑运算符基本使用

&(与),|(或),^(异或),!(非) ,&&,||
运算符规则
与:&有false则false
或:|有true则true
异或:^相同则false,不同则true
非:!true则false,false则true

+的多种用法

  • 数字相加
  • 字符相加: 用字符在计算机中底层存储对应的数据值来参与运算
  • 字符串相加: 这里的+其实不是加法,而是字符串连接符;字符串和其他类型的数据做拼接,结果是字符串类型的。

switch表达式

  • 表达式的取值:byte,short,int,char
  • JDK5以后可以是枚举
  • JDK7以后可以是String

随机数Random类

Random r = new Random();
int number = r.nextInt(10); // 产生的数据在0到10之间,包括0,不包括10,即[0,10)。

方法重载概述

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

方法重载特点

  • 与返回值类型无关,只看方法名和参数列表
  • 在调用时,虚拟机jvm通过参数列表的不同来区分同名方法
public static float sum(floata,floatb)
public static int sum(inta,intb,intc)

面试题:以下创建String对象有什么区别:

//该方式有两个对象:1个在堆中,一个在常量池中 
String str1 = new String("helloworld");
//该方式有一个对象,在常量池中
String str = "helloworld";

java.util.Scanner类

方法作用
public int nextInt()从键盘输入一个整数
public double nextDouble()从键盘输入一个double类型的数据
public String nextLine()从键盘获取一行的数据,如何从键盘输入一个字符串

java.lang.String类

构造方法作用
public String(String original)把字符串数据封装成字符串对象
public String(char[] value)把字符数组的数据封装成字符串对象
public String(char[] value,int offset,int count)把字符数组中的一部分数据封装成字符
判断功能方法作用
boolean equals(Object obj)比较字符串的内容是否相同
boolean equalsIgnoreCase(String str)比较字符串的内容是否相同,忽略大小写
boolean startsWith(String str)判断字符串对象是否以指定的str开头
boolean endsWith(String str)判断字符串对象是否以指定的str结尾
返回值获取功能方法作用
intlength()获取字符串的长度,其实也就是字符个数
charcharAt(int index)获取指定索引处的字符
intindexOf(String str)获取str在字符串对象中第一次出现的索引,没有返回-1
Stringsubstring(int start)从start开始截取字符串到字符串结尾
Stringsubstring(int start,int end)从start开始,到end结束截取字符串;包括start,不包括end
返回值转换功能方法作用
char[]toCharArray()把字符串转换为字符数组
StringtoLowerCase()把字符串转换为小写字符串
StringtoUpperCase()把字符串转换为大写字符串
返回值方法作用
Stringtrim()去除字符串两端空格
String[]split(String str)按照指定符号分割字符串

java.lang.StringBuilder类

方法作用
public StringBuilder append(E e)(任意类型):添加数据,并返回自身对象
public StringBuilder reverse()字符串反转

java.util.ArrayList集合 集合是用来存对象的

  • 数组和集合的区别:
    • 数组长度恒定 可以存储任意类型元素
    • 集合长度可变 只能存储引用类型 如果存基本类型 需要存对应的引用类型
    • 集合是可变的数组
  • 添加元素
public  boolean add(E e)  // 添加元素
  • 获取元素
public E  get(int index)  // 返回指定索引处的元素 
  • 集合长度
public int  size()  // 返回集合中的元素的个数 
  • 删除元素
public boolean remove(Object o)  // 删除指定的元素,返回删除是否成功
public E remove(int index)       // 删除指定索引处的元素,返回被删除的元素
  • 修改元素
public E set(int index,E element)  // 修改指定索引处的元素,返回被修改的元素

java.io.FileWriter类

  • 构造方法
public FileWriter(String fileName) //传递一个文件名称
public FileWriter(String fileName, boolean append) //true:追加写入
  • 成员方法
void write(String str) //往文件中写入一个字符串。
void write(String str,int index,int len) //写字符串中的一部分数据,index:开始索引,len:写几个
void write(int ch) //写一个字符数据,这里写int类型是既可以写char类型的数据,也可以写char对应的int类型的值。如'a'->97。
void write(char[] chs) //写一个字符数组数据
void write(char[] chs,int index,int len) //写一个字符数组的一部分数据, index:开始索引,len:写几个
  • 路径:
    • 相对路径:相对当前项目而言的,在项目的根目录下(a.txt)
    • 绝对路径:以盘符开始的路径(d:\a.txt)

java.io.FileReader类

  • 构造方法
public FileReader(String fileName) // 传递要读取的文件名称
  • 成员方法
int read() // 读取单个字符并返回 -1
int read(char[] cbuf) // 一次读取一个字符数组的数据,返回的是实际读取的字符个数
  • 复制文本文件: 一次读写一个字符复制文本文件
public class Demo01CopyFile {
    public static void main(String[] args) throws IOException {
        //创建输入流对象
        FileReader fr = new FileReader("Demo01FileWriter.java");
        //创建输出流对象
        FileWriter fw = new FileWriter("Copy.java");
        //读写数据
        int ch;
        while ((ch = fr.read()) != -1) {
            fw.write(ch);
        }
        //释放资源
        fw.close();
        fr.close();
	}
}
  • 复制文本文件: 一次读写一个字符数组复制文本文件 推荐
public class Demo02CopyFile {
    public static void main(String[] args) throws IOException {
        //创建输入流对象
        FileReader fr = new FileReader("Demo01FileWriter.java");
        //创建输出流对象
        FileWriter fw = new FileWriter("Copy.java");
        //读写数据
        char[] chs = new char[1024];
        int len;
        while ((len = fr.read(chs)) != -1) {
            fw.write(chs, 0, len);
        }
        //释放资源
        fw.close();
        fr.close();
    }
}

BufferedWriter和BufferedReader类

  • 构造方法
public BufferedWriter(FileWriter fw);
  • BufferedWriter 特殊功能
void newLine() // 写一个换行符,这个换行符由系统决定
  • BufferedReader 特殊功能
String readLine() // 一次读取一行数据,但是不读取换行符
  • 缓冲流复制文本文件的两种方式
public class Demo02CopyFile {
    public static void main(String[] args) throws IOException {
        //创建输入缓冲流对象
        BufferedReader br = new BufferedReader(new FileReader("Demo01FileWriter.java"));
        //创建输出缓冲流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java"));
        //一次读写一个字符
        int ch;
        while ((ch = br.read()) != -1) {
            bw.write(ch);
        }
        
        //一次读写一个字符数组
        char[] chs = new char[1024];
        int len;
        while ((len = br.read(chs)) != -1) {
            bw.write(chs, 0, len);
        }
        //释放资源
        bw.close();
        br.close();
    }
}
  • 缓冲流特殊功能复制文本文件 推荐
public class Demo04CopyFile {
    public static void main(String[] args) throws IOException {
        //创建输入缓冲流对象
        BufferedReader br = new BufferedReader(new FileReader("Demo01FileWriter.java"));
        //创建输出缓冲流对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java"));
        //读写数据
        String line;
        while((line=br.readLine())!=null) {
            bw.write(line);
            bw.newLine();
            bw.flush();
        }
        //释放资源
        bw.close();
        br.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值