JAVA基础知识——基础程序设计结构(详细整合版)

目录

1、变量定义及类型

2、操作符

3、控制流程

条件判断

switch case 语句

循环结构

4、数字与字符串

封装类

装箱与拆箱

Math类

Character 类

String 类

StringBuffer 类

5、数组

一维数组

多维数组

Arrays类

6、日期

7、修饰符

访问控制修饰符

非访问修饰符


1、变量定义及类型

变量:用来命名一个数据的标识符

变量类型:

2、操作符

3、控制流程

  • 条件判断

if语句

if(布尔表达式)
{
    //如果布尔表达式为true将执行的语句
}

if—else语句

if(布尔表达式){
    //如果布尔表达式的值为true
}else{
    //如果布尔表达式的值为false
}

if多条件判断语句

if(布尔表达式 1){
    //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
    //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
    //如果布尔表达式 3的值为true执行代码
}else {
    //如果以上布尔表达式都不为true执行代码
}
  • switch case 语句

相当于 if else的另一种表达方式,判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch(expression){
    case value :
        //语句
        break; //可选
    case value :
        //语句
        break; //可选
    //你可以有任意数量的case语句
    default : //可选
        //语句
}
  • 循环结构

while循环,条件为true时 重复执行

while( 布尔表达式 ) {
    //循环内容
}

do...while循环,条件为true时 重复执行,至少会执行一次

do {
    //代码语句
}while(布尔表达式);

for循环,和while一样,只是表达方式不一样

for(初始化; 布尔表达式; 更新) {
    //代码语句
}

增强for循环

声明语句声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式表达式是要访问的数组名,或者是返回值为数组的方法。

for(声明语句 : 表达式)
{
    //代码句子
}

continue关键字(继续下一次循环)

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

在 for 循环中,continue 语句使程序立即跳转到更新语句。

在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

break关键字(结束循环)

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

4、数字与字符串

  • 封装类

在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。

  • 装箱与拆箱

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。

public static void main(String[] args) {
    int i = 5;
    //装箱基本类型转换成封装类型
    Integer it = new Integer(i);
    //拆箱封装类型转换成基本类型
    int i2 = it.intValue();
    //自动转换就叫装箱
    Integer it2 = i;
    //自动转换就叫拆箱
    int i3 = it;
}
  • Math类

提供了一些常用的数学运算的属性和方法,如初等指数、对数、平方根和三角函数,并且都是以静态方法的形式存在

public static void main(String[] args) {
    float f1 = 5.4f;
    float f2 = 5.5f;
    //5.4四舍五入即5
    System.out.println(Math.round(f1));
    //5.5四舍五入即6
    System.out.println(Math.round(f2));

    //得到一个0-1之间的随机浮点数(取不到1)
    System.out.println(Math.random());

    //开方
    System.out.println(Math.sqrt(9));
    //次方(2的4次方)
    System.out.println(Math.pow(2,4));

    //π
    System.out.println(Math.PI);

    //自然常数
    System.out.println(Math.E);
}
  • Character 类

char对应的封装类是Character,Character 类用于对单个字符进行操作。

public static void main(String[] args) {
    char c1 = 'a';
    Character c = c1; //自动装箱
    c1 = c;//自动拆箱
    //Character常见方法 
    System.out.println(Character.isLetter('a'));//判断是否为字母
    System.out.println(Character.isDigit('a')); //判断是否为数字
    System.out.println(Character.isWhitespace(' ')); //是否是空白
    System.out.println(Character.isUpperCase('a')); //是否是大写
    System.out.println(Character.isLowerCase('a')); //是否是小写

    System.out.println(Character.toUpperCase('a')); //转换为大写
    System.out.println(Character.toLowerCase('A')); //转换为小写

    String a = 'a'; //不能够直接把一个字符转换成字符串
    String a2 = Character.toString('a'); //转换为字符串
}

  • String 类

在Java中,字符串是一个类,所以我们见到的字符串都是对象,Java 提供了 String 类来创建和操作字符串。

public static void main(String[] args) {
    String str1 ="Hello"; //字面值,虚拟机碰到字面值就会创建一个字符串对象

    String str2 = new String("world"); //创建了两个字符串对象

    char[] c1 = new char[]{'N','I','C','E'};

    String str3= new String(c1);//  通过字符数组创建一个字符串对象

    String str4 = str1 + str2;//  通过+加号进行字符串拼接

    int len = str1.length();//求str1的长度

    //三种连接字符串的方式
    str1.concat(str2);
    "Hello ".concat("world");
   String str = "Hello" + " world" + "!";

   //格式化输出
    int year = 2020;
    //直接打印数字
    System.out.format("%d%n",year);
    //总长度是8,默认右对齐
    System.out.format("%8d%n",year);
    //总长度是8,左对齐
    System.out.format("%-8d%n",year);
    //总长度是8,不够补0
    System.out.format("%08d%n",year);
    //千位分隔符
    System.out.format("%,8d%n",year*10000);

    //小数点位数
    System.out.format("%.2f%n",Math.PI);

    //不同国家的千位分隔符
    System.out.format(Locale.FRANCE,"%,.2f%n",Math.PI*10000);
    System.out.format(Locale.US,"%,.2f%n",Math.PI*10000);
    System.out.format(Locale.UK,"%,.2f%n",Math.PI*10000);

}

字符串操作

public static void main(String[] args) {

    String sentence = "Hello, world !";

    char c = sentence.charAt(0);//charAt(int index)获取指定位置的字符
    char[] cs = sentence.toCharArray(); //获取对应的字符数组
    String subString1 = sentence.substring(3);//截取从第3个开始的字符串
    String subString2 = sentence.substring(3,5);//截取从第3个开始到第5个结束的字符串
    String subSentences[] = sentence.split(",");//根据,进行分割,得到3个子字符串
    sentence.trim(); //去掉首尾空格
    sentence.toLowerCase();//全部变成小写
    sentence.toUpperCase();//全部变成大写
    sentence.indexOf('l');//字符第一次出现的位置
    sentence.lastIndexOf("world");//字符串最后出现的位置
    sentence.indexOf(',',3);//从位置3开始,出现的第一次,的位置
    sentence.contains("Hello");//是否包含字符串"Hello"
    sentence.replaceAll("Hello", "Hi");//替换所有的
    sentence.replaceFirst(",","");//只替换第一个
}

字符串比较

public static void main(String[] args) {

    String str1 = "the light";
    String str2 = new String(str1);
    String str3 = "the light";

    System.out.println( str1  ==  str2);//==用于判断是否是同一个字符串对象
    System.out.println(str1.equals(str2));//使用equals进行字符串内容的比较,必须大小写一致,完全一样返回true
    System.out.println(str1.equalsIgnoreCase(str3));//忽略大小写的比较
    // 是否以子字符串开始或者结束 
    System.out.println(str1.startsWith(start));//以...开始
    System.out.println(str1.endsWith(end));//以...结束
}
  • StringBuffer 类

当对字符串进行修改的时候,需要使用 StringBuffer 类。

和 String 类不同的是,StringBuffer 类的对象能够被多次的修改,并且不产生新的未使用对象。

5、数组

  • 一维数组

public static void main(String[] args) {
    // 声明一个数组
    int[] arg;//还可以写成int arg[];注意这里只是声明,不会创建数组

    //创建数组
    arg = new int[5];//用new创建一个长度是5的数组,并且使用引用arg指向该数组
    int[] b = new int[5]; //声明的同时,指向一个数组

    //分配空间,赋值
    arg[0]= 1;  //赋值,下标0,代表数组里的第一个数
    int[] aa = new int[]{100,102,444,836,3236};//写法一: 分配空间同时赋值
    int[] cc = {100,102,444,836,3236}; //写法二: 省略了new int[],效果一样

    //数组长度
    System.out.println(arg.length); //打印数组的长度 (.length属性用于访问一个数组的长度)

    for(int element: arg)//加强型循环,它能在不使用下标的情况下遍历数组
    {
        System.out.println(element);
    }

    //复制字符串
    //arraycopy(src, srcPos, dest, destPos, length)
    //src: 源数组
    //srcPos: 从源数组复制数据的起始位置
    //dest: 目标数组
    //destPos: 复制到目标数组的启始位置
    //length: 复制的长度
    System.arraycopy(arg, 0, b, 0, 3);

}
  • 多维数组:

可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组

  • Arrays类

java.util.Arrays类常用方法

public static void main(String[] args) {
    int arr[] = new int[] { 18, 62, 68, 82, 65, 9 };
    int arr2[] = new int[] { 18, 62, 68, 82, 65, 8 };
    String content = Arrays.toString(arr);//直接把一个数组,转换为字符串
    Arrays.sort(arr);//通过 sort 方法,按升序
    Arrays.binarySearch(arr, 62);//对排序好的数组进行二分查找法操作
    Arrays.equals(arr,arr2);//比较数组中元素值是否相等
    Arrays.fill(arr, 5);//使用同一个值,填充整个数组
}

6、日期

java.util 包提供了 Date 类来封装当前的日期和时间

时间原点:在计算机里,会用一个数字来代替。那么最特殊的一个数字,就是零. 零这个数字,就代表Java中的时间原点,其对应的日期是1970年1月1日 8点0分0秒 。 (为什么是8点,因为中国的太平洋时区是UTC-8,刚好和格林威治时间差8个小时)。为什么对应1970年呢? 因为1969年发布了第一个 UNIX 版本:AT&T,综合考虑,当时就把1970年当做了时间原点。所有的日期,都是以为这个0点为基准,每过一毫秒,就+1。

public static void main(String[] args) {

    Date d1 = new Date();//当前时间

    Date d2 = new Date(5000); // 从1970年1月1日 早上8点0分0秒 开始经历的毫秒数

   d1.getTime();//getTime() 得到一个long型的整数,这个整数代表 1970.1.1 08:00:00:000,每经历一毫秒,增加1

    System.currentTimeMillis();//通过System.currentTimeMillis()获取当前日期的毫秒数

    SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");//使用 SimpleDateFormat 格式化日期
    ft.format(d1);
    
}

7、修饰符

 

  • 访问控制修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

  • 非访问修饰符

static 修饰符,用来修饰类方法和类变量。

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

abstract 修饰符,用来创建抽象类和抽象方法。

synchronized 和 volatile 修饰符,主要用于线程的编程。

 

整理参考之前学习的两个网站

https://how2j.cn/

https://www.runoob.com/java/java-tutorial.html

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。针对USB接口程序设计,我们需要先了解一些基础知识: 1. USB是什么? USB(Universal Serial Bus)是一种用于连接计算机与外部设备的串行总线标准,可用于数据传输、充电和供电等多种用途。 2. USB接口类型 USB接口按照接口类型分为USB Type-A、USB Type-B、mini-USB、micro-USB等多种类型。 3. USB接口规范 USB接口规范包括USB1.0、USB2.0、USB3.0等多个本,每个本都有自己的传输速度和功能特性。 在了解了上述基础知识后,我们可以开始设计USB接口程序。具体步骤如下: 1. 定义一个接口类Usb,在该类中定义一个抽象方法,用于实现数据传输功能。 ```java public interface Usb { void transferData(); } ``` 2. 定义一个USB设备类,该类实现了Usb接口,并实现了接口中的抽象方法,用于实现具体的数据传输功能。 ```java public class UsbDevice implements Usb { @Override public void transferData() { System.out.println("USB设备传输数据"); } } ``` 3. 定义一个主机类,该类也实现了Usb接口,但是该类的transferData方法中不是实现传输数据的功能,而是调用USB设备类的transferData方法,从而实现数据传输。 ```java public class Host implements Usb { private Usb usbDevice; public Host(Usb usbDevice) { this.usbDevice = usbDevice; } @Override public void transferData() { usbDevice.transferData(); } } ``` 4. 在主函数中实例化USB设备类和主机类,并调用主机类的transferData方法,从而实现数据传输。 ```java public static void main(String[] args) { UsbDevice usbDevice = new UsbDevice(); Host host = new Host(usbDevice); host.transferData(); } ``` 这样,我们就完成了一个简单的USB接口程序设计。当然,实际情况中,USB接口程序可能会更加复杂,需要考虑更多的因素,例如不同类型的USB接口、不同本的USB规范等等。同时,我们还需要注意USB接口程序的稳定性和可靠性,以确保程序的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值