API概述

什么叫做API?

API(Application Programming lnterface),应用程序编程接口。

所谓API就是值好多的类,好多的方法,JDK给我们提供了很多现成的类,我们可以直接去使用,这些类就是API

API官方文档

常见的几个API之Scanner类的使用

  1. 导包

    Scanner类因为存在于java.lang包下,所有不需要导入就可以直接使用

  2. 创建

    类名称 对象名 = new 类名称();

  3. 使用

    对象名.方法名();

public class AScanner{
public static void main(String[] args){
System.out.println("请输入一个数字")
//System.in代表从键盘进行输入
Scanner sc = new Scanner(System.in);
//调用Scanner的方法,获取一个整数
int num = sc.nextInt();
System.out.println("数字"+num);
}
}

Scanner的练习题

import java.util.Scanner;

public class MaxInput {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字");
int a = sc.nextInt();
System.out.println("请输入第二个数字");
int b = sc.nextInt();
System.out.println("请输入第三个数字");
int c = sc.nextInt();
int max ;
if(a>b){
max = a;
}else{
max = b;
}
if(max>c){
System.out.println("最大值为"+max);
}else{
max = c;
System.out.println("最大值为"+max);
} }
}

匿名对象

匿名对象就是只有右边的对象,没有左边的名字和赋值运算符

匿名对象的格式:

new 类名称();

匿名对象只能够使用一次,下次再用不得不再创建一个新对象

每一次new都是一个新的对象,所以只能够使用一次

public class Person{
String name;
public void showName(){
System.out.println("我叫"+name);
}
}
public class niming{
public static void main(String[] args){
Person one = new Person();
one.name =( "张飞");
one.showName(); new Person().name = "吕蒙";
new Person().showName(); //不能够打印出吕蒙,每一次new都是一个新的对象 }
}

常见的几个API之Random

public static void main(String[] args){
//创建对象
Random r = new Random();
//调用方法,随机生成无范围的一个整数
int i = r.nextInt();
System.out.println(i);
}
 public static void main(String[] args){
Random r = new Random();
for(int j = 0;j<100;j++){
//随机获得一个0-9的数字,
int i = r.nextInt(10);
System.out.println(i);
}
}

练习--猜数字小游戏

思路

你要猜一个数字,必须要先把数字给确定下来,也就是在这里,第一步要使用Random类来获取一个随机数

有了随机数,就可以猜了,让用户输入随机数,就要使用到API中的Scanner类

用户一般不可能一次猜中,所以就需要反复猜,这里就要用到while循环

猜一个数字有大了,小了,猜中了,三种结果,所以这里可以使用选择结构if语句

import java.util.Random;
import java.util.Scanner;
//变量名rn是随机数的缩写,sn,是键盘录入数字的缩写
public class aGame{
public static void main(String[] args) {
Random aRandom = new Random();
//获得一个随机整数
int rn = aRandom.nextInt(101);
// System.out.println(rn);//作弊大法
Scanner aScanner = new Scanner(System.in);
System.out.println("请输入一个0-100之间的整数.....");
//用户输入的整数
boolean mark = true;
while (mark) {
int sn = aScanner.nextInt();
if (sn > rn) {
System.out.println("输入的数字大了,请往小的方向猜吧");
} else if (sn < rn) {
System.out.println("输入的数字小了,请往大的方向猜吧");
} else {
System.out.println("恭喜你,猜对啦");
mark = false;
}
}
System.out.println("游戏结束,感谢参与!!!!!!!!!!!!!!");
} }

ArrayList集合

ArrayList记得的长度是可以改变的,

public static void main(String[] args){
//创建一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据
//备注:从JDK1.7版本后,右侧的尖括号内容可以不行
ArrayList<String> list = new ArrayList<>();
System.out.println(list);//将会打印[]里的内容,如果没有内容,输出结果为 []
//想集合当中添加数据,需要用到add方法;
list.add("赵云");
System.out.println(list);
}

ArrayList集合的常用方法和遍历

常用方法有:
  1. public boolean add(E e);向集合当中添加元素,参数类型和泛型类型一致

  2. public E get(int index);从集合中获取元素,参数是索引编号,

  3. public int size(),获取集合的尺度长度,返回值是集合包含的元素个数

  4. public E remove(int index),从集合中删除元素,参数是索引编号,返回值是被删除的元素

 public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//add方法的使用
list.add("贾诩");
list.add("周瑜");
list.add("郭嘉");
System.out.println(list);//[贾诩, 周瑜, 郭嘉]
//从集合中获取元素,get方法,索引从0开始
String aname = list.get(2);
System.out.println(aname);//郭嘉
//从集合中删除元素
list.remove(1);
System.out.println(list);//[贾诩, 郭嘉]
//获取集合的长度
System.out.println(list.size());//2
list.add("诸葛亮");
//集合的遍历
for(int i = 0;i<list.size();i++){
System.out.println(list.get(i));
}
}
ArrayList集合存储基本数据类型

ArrayList集合是不能够存储基本类型的,如果要存储基本类型,必须使用基本类型对应的包装类

基本类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
System.out.println(list);//[100, 200]
//自动拆箱,包装类型变成基本类型
System.out.println(list.get(0));//100
}

从JDK 1.5开始,支持自动装箱,自动拆箱

自动装箱:基本类型 ----->包装类型

自动拆箱:包装类型 ------>基本类型

ArrayList集合的练习1

题目:生成6个1~33之间的随机整数,添加到集合,并遍历集合

我的解题思路:,

生成6个随机的整数,就要用到Random类,

把生成的整数添加到集合,就要创建一个集合,

使用集合方法add来添加都集合,所以到这里就会有aList.add(随机数),这样就把随机数给添加到集合了,重复添加可以使用for循环

接下来就是遍历了

import java.util.ArrayList;
import java.util.Random; public class AArray {
public static void main(String[] args) {
Random aRandom = new Random();
ArrayList<Integer> aList = new ArrayList<>();
for(int i=0;i < 6 ;i++){
aList.add(aRandom.nextInt(33)+1);
System.out.println(aList.get(i));
}
System.out.println(aList);
}
}
ArrayList练习二
题目:自定义四个学生对象,添加到集合,并遍历
public class Student {
private int age;
private String name; public Student(int age, String name) {
this.age = age;
this.name = name;
} public Student() {
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}
import java.util.ArrayList;

public class AStudent {
public static void main(String[] args) {
Student one = new Student(25,"貂蝉");
Student two = new Student(26,"西施");
Student three = new Student(27,"王昭君");
Student four = new Student(28,"杨玉环");
ArrayList<Student> arrayS = new ArrayList<>();
arrayS.add(one);
arrayS.add(two);
arrayS.add(three);
arrayS.add(four);
for (int i=0;i<arrayS.size();i++ ){
//使用get,获取对象出来
Student stu = arrayS.get(i);
//使用对象名.方法名来获取年龄和姓名,到这里就遍历结束
System.out.println("年龄"+stu.getAge()+"..."+"姓名"+stu.getName());
} }
}
ArrayList集合练习三
题目:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中
import java.util.ArrayList;
import java.util.Random;
public class AArray {
//题目:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中
public static void main(String[] args) {
//大集合,存放20个随机数字
ArrayList<Integer> big = new ArrayList<>();
//小集合,存偶数
ArrayList<Integer> small = new ArrayList<>();
Random r = new Random();
for(int i=0;i<20;i++) {
//向大集合添加随机数,循环一次添加一个
big.add(r.nextInt(20));
}
System.out.println(big); for(int i=0;i<big.size();i++) {
int num = big.get(i);
if(num%2==0) {
//向小集合添加偶数
small.add(num);
}
}
System.out.println(small); }
}
字符串概述和特点

字符串的特点:

  1. 字符串的内容用不可变

  2. 正是因为字符串不可以改变,所以字符串是可以共享使用的

  3. 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组

字符串的构造方法和直接创建
public static void main(String[] args){
//使用空参构造
String str1 = new String();
System.out.println("第一个字符串"+str1);
//根据字符数组创建字符串
char[] charArray = {'A','B','C'};
String str2 = new String(charArray);
System.out.println("第二个字符串"+str2);
//根据字节数组创建字符串
byte[] byteArray = {97,98,99};
String str3 = new String(byteArray);
System.out.println("第三个字符串"+str3);
//直接创建
String str4 = "Hello";
System.out.println("第四个"+str4);
}
字符串的常量池

字符串常量池,程序当中直接写上的双引号字符串,就在字符串常量池当中

对于基本类型来说 ==是进行数值的比较

对于引用类型来说 ==是进行地址的比较

public static void main(String[] args){
String str1 = "abc";//地址存在常量池中
String str2 = "abc";//地址存在常量池
char[] charArray = {'a','b','c'};
String str3 = new String(charArray);//地址不再常量池中
System.out.println(str1 == str2);//true
System.out.println(str1 == str3);//false
System.out.println(str2 == str3);//false }
字符串比较的相关方法
public static void main(String[] args){
String str1 = "hello";
String str2 = "hello";
char[] charArray = {'h','e','l','l','o'};
String str3 = new String(charArray);
//equals比较的是两个字符串的内容
System.out.println(str1.equals(str2));//true
System.out.println(str2.equals(str3));//true
System.out.println(str3.equals("hello"));//true
//忽略大小写的比较方法equalsIgnoreCase
System.out.println(str3.equalsIgnoreCase("Hello"));//true }

字符串的获取相关方法

public static void main(String[] args){
//获取字符串的长度;
int length = "wertrghgffdvscsegh".length();
System.out.println("字符串的长度是 "+length); //拼接字符串
String str1= "hello";
String str2 = "world";
String str3 = str1.concat(str2);
System.out.println(str3); //获取指定索引位置的单个字符
char ch = "hello".charAt(1);
System.out.println("在1号索引位置的字符是"+ch); //查找参数字符串在本来字符串当中出现的第一次索引位置
//如果没有返回-1
String original = "helloworld";
int i =original.indexOf("llo");
System.out.println("第一次出现的索引位置是"+i);
}
字符串的转换相关方法
public static void main(String[] args){
//把字符串转换成字符数组
char[] chars = "原乘风破万里浪".toCharArray();
for(int i=0;i<chars.length;i++) {
System.out.println(chars[i]);
}
//把字符串转换成字节数组
String str = "甘面壁读是十年书";
byte[] bytes = str.getBytes();
for(int i=0;i<bytes.length;i++) {
System.out.println(bytes[i]);
}
//字符串的内容替换
String str3 = "风声雨声读书声声声入耳";
String str4 = str3.replace("声", "sheng");
System.out.println(str4);
//字符串的切割方法,返回一个string[]
String[] str5 =str3.split("声");
for(int i=0;i<str5.length;i++) {
System.out.println(str5[i]);
}
}

7天学完Java基础之3/7的更多相关文章

  1. 7天学完Java基础之0/7

    笔记-7天学完Java基础之0/7 1.常用命令提示符(cmd) 启动:Win+R,输入cmd​

  2. 简明易懂,将细节隐藏,面向新手树立web开发概念——学完Java基础语法,超快速上手springboot+mybatiJavaWeb开发

    简明易懂,将细节隐藏,面向新手树立web开发概念 --学完Java基础语法,超快速上手JavaWeb开发 Web本质(先忽视各种协议) Web应用可以理解为浏览器和服务器之间的交互. 我们可以看一个简 ...

  3. 7天学完Java基础之5/7

    接口 接口就是一种公共的规范标准 是一种引用数据类型 定义格式 public interface 接口名称{} java7 中接口可以包含常量,抽象方法:Java8 还可以额外包含默认方法,静态方法: ...

  4. 7天学完Java基础之4/7

    静态static 如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类,多个对象共享同一份数据 静态static 关键字修饰成员变量 public class St ...

  5. 7天学完Java基础之7/7

    Object类的toString方法 类Object是类层次结构的根类 每个都使用Object作为超类 所有对象都实现这个类的方法 //这个是Object类的子类,实现了其所有方法 public cl ...

  6. 7天学完Java基础之6/7

    final关键字的概念与四种用法 final关键字代表最终,不可改变的 常见四种用法: 可以用来修饰一个类 当前这个类不能有任何子类 可以用来修饰一个方法 当final关键字用来修饰一个方法的时候,这 ...

  7. 7天学完Java基础之1/7

    方法重载 package cn.itcat.day04.demo01; //方法重载就是参数个数不同,参数类型不同,参数类型的顺序不同 //方法重载与参数名称无关,与方法返回值类型无关 //方法重载方 ...

  8. 7天学完Java基础之2/7

    面向对象 面向对象的思想就是值我们要实现一个共功能的时候,我们不自己去做,而是找别人帮我们去做,帮我们去做的这个人就是对象.面向对象强调的是谁来帮我实现这个功能. 类与对象的关系 类:是一组相关属性和 ...

  9. 学完 JAVA SE后学什么 。。。

    我觉得学习j2ee一定要循序渐进,千万不要太急了.把java基础打牢一点,再牢一点.各位,你们在后面学习什么 struts,hibernate,spring,ajax..都很轻松. 第一个阶段(jav ...

随机推荐

  1. Effective C++ 条款三 尽可能使用const

    参考资料:http://blog.csdn.net/bizhu12/article/details/6672723      const的常用用法小结 1.用于定义常量变量,这样这个变量在后面就不可以 ...

  2. Vue生命周期方法。

  3. split+ Pattern切割字符串

    今天在对一个String对象进行拆分的时候,总是无法到达预计的结果.呈现数据的时候出现异常,后来debug之后才发现,错误出在String spilt上,于是开始好好研究下这东西,开始对api里的sp ...

  4. Golang 现有的哲学中,要求你尽量手工处理所有的错误返回

    更优雅的 Golang 错误处理 - Go语言中文网 - Golang中文社区 https://studygolang.com/articles/9407

  5. poj 1742 Coins(二进制拆分+bitset优化多重背包)

    \(Coins\) \(solution:\) 这道题很短,开门见山,很明显的告诉了读者这是一道多重背包.但是这道题的数据范围很不友好,它不允许我们直接将这一题当做01背包去做.于是我们得想一想优化. ...

  6. jvm虚拟机配置 深度好文

    http://blog.csdn.net/kthq/article/details/8618052

  7. bzoj4664: Count

    是bzoj4498: 魔法的碰撞的哥哥题,我只写了一种 不一样的地方在于贡献有负数,第三维要保存的不能仅仅是0~L,这样空间会炸裂 考虑如何把贡献变成正的 假如要求最优解,那么一定是按顺序排,混乱度为 ...

  8. HDU2476 String painter —— 区间DP

    题目链接:https://vjudge.net/problem/HDU-2476 String painter Time Limit: 5000/2000 MS (Java/Others)    Me ...

  9. AJAX 用户验证方法

    JSP <td width="10%" class="main_matter_td">真实姓名</td> <td width=&q ...

  10. 蒟蒻的HNOI2017滚粗记

    蒟蒻的第一次省选,然而并没有RP爆发... Day 1: 8:00开考,(然而密码错误是什么鬼).跌跌撞撞,8:40终于拿到纸质试题. { T1:作为一名没有学过Splay的蒟蒻,考场上真的被出题人感 ...