自学-前端学习后端的过程。版本(es6=>jdk8)

70 阅读5分钟

声明变量

基本数据类型

js:

var /let /const 变量名 = 变量值
//变量提升
var a;
//es6  let可修改,const不可修改
let age = 1;
//存储一个小数类型的体重
const weight=1.22;
const gender=1;
const marry = true;
const gender='男';
let a,b,c;
let s1 = Symbol()
let s2 = Symbol('another symbol')
let s3 = Symbol('another symbol')
s1 === s2 // false
s2 === s3 // false

java:

数据类型   变量名 = 变量值;
//只能写在方法体内
var a = 1;
//整数类型:byte、short、int、long存储一个整数类型的年龄
int age = 10; 
byte b = 1;
short s = 200;
int i = 300;
long l = 400;
/*如果试图给byte类型的变量赋予超出其范围的值,就会产生编译错误*/
byte b2 = 200;
/*浮点类型存储小数, 
*float单精度尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double双精度精度是64位,是float的两倍**/
//赋值时需要以"f"或"F"作为后缀。
float weight = 1.22f;
double weight = 1.22;
//字符类型:char存储一个单字符
char gender='男';
//布尔类型:boolean存储一个布尔类型
boolean marry = true;
//声明多个同类型的变量
int a,b,c; //表示a,b,c三个变量都是int类型。

总结使用上的感受、不同点

  1. java每一条语句必须分号结尾;js不用。
  2. js的基本数据类型number(数字)、string(字符串)、boolean(布尔)、null(空)、undefined(未定义)、symbol(符号)。
  3. java的基本数据类型。
    • 整数类型:byte、short、int、long
    • 浮点类型:float、double
    • 字符类型:char
    • 布尔类型:boolean
  4. String是java引用类型、js是基本数据类型。
  5. java使用一对""来表示一个字符串,内部可以包含0个、1个或多个字符。''表示char类型(单字符)。而js用""和''都表示字符串,
  6. java中任意八种基本数据类型的数据与String类型只能进行连接“+”运算,且结果一定也是String类型(与js相同)、其他类型简拼接需要注意自动类型提升;
  7. java是静态类型(整数可以自动类型提升、强制转换)其他不允许强制转换、js是动态类型。

自动类型提升 519.png

强制类型转换

数据类型1 变量名 = (数据类型1)被强转数据值; //()中的数据类型必须<=变量值的数据类型

String类型不能通过强制类型()转换,转为其他的类型

关于运算符的不同

js:

  • if(a===b)//类型,值均相同
  • if(a==b)//是要先先进行类型转换后,才能做比较
  • 逻辑运算符只有&& || !三种

java:

  • if(a==b)//只比较值。类型不同、无法比较
  • 逻辑运算符,操作的都是boolean类型的变量或常量,而且运算得结果也是boolean类型的值。

  • 运算符说明:

    • & 和 &&:表示"且"关系,当符号左右两边布尔值都是true时,结果才能为true。否则,为false。

    • | 和 || :表示"或"关系,当符号两边布尔值有一边为true时,结果为true。当两边都为false时,结果为false

    • ! :表示"非"关系,当变量布尔值为true时,结果为false。当变量布尔值为false时,结果为true。

    • ^ :当符号左右两边布尔值不同时,结果为true。当两边布尔值相同时,结果为false。

      • 理解:异或,追求的是“异”!
  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成 3 < x < 6,应该写成x > 3 & x < 6 。

  • 区分“&”和“&&”:

    • 相同点:如果符号左边是true,则二者都执行符号右边的操作
    • 不同点:& : 如果符号左边是false,则继续执行符号右边的操作

    && :如果符号左边是false,则不再继续执行符号右边的操作

    • 建议:开发中,推荐使用 &&
  • 区分“|”和“||”:

  • 相同点:如果符号左边是false,则二者都执行符号右边的操作

  • 不同点:| : 如果符号左边是true,则继续执行符号右边的操作

    || :如果符号左边是true,则不再继续执行符号右边的操作

  • 建议:开发中,推荐使用||

关于打印的不同

js: 使用console.log("","")向控制台输出数据 (逗号隔开打印多个)

java: 使用System.out.println() 向控制台输出数据。不能使用逗号隔开打印,打印多个需用+拼接 System.out.print()不换行输出

引用数据类型

数组

js

var /let /const 变量名 = [元素1,元素2];
//一维数组
const arr= [1,2,3,4,5]
//二维数组
const arr = [[1,2,3],[1,2,3]]

java

1.静态初始化
数据类型[]   变量名 =new  数据类型[长度];
int[] arr = new int[]{1,2,3,4,5};
2.动态初始化
数组存储的元素的数据类型[] 数组名字 = new 数组存储的元素的数据类型[长度];
int[] arr = new int[5];


二维数组 静态初始化
元素的数据类型[][] 二维数组的名称;
int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};
动态初始化
元素的数据类型[][] 二维数组名 = new 元素的数据类型[m][n];
//其中,m:表示这个二维数组有多少个一维数组。或者说一共二维表有几行
//其中,n:表示每一个一维数组的元素有多少个。或者说每一行共有一个单元格
int[][] arr = new int[3][2];

注意

  1. java中数组有定长特性,长度一旦指定,不可更改
  2. js的数组方法直接在原型链上调用:arr.方法名()
  3. java的数组方法只能在工具类里面java.util.Arrays
package com.atguigu5.arrays;

import java.util.Arrays;

public class ArraysTest {
   public static void main(String[] args) {
      //1. boolean equals(int[] a,int[] b):比较两个数组的元素是否依次相等
      int[] arr1 = new int[]{1,2,3,4,5};
      int[] arr2 = new int[]{1,2,3,4,5};
      arr2 = new int[]{1,2,3,5,4};

      System.out.println(arr1 == arr2);

      boolean isEquals = Arrays.equals(arr1,arr2);
      System.out.println(isEquals);//true ---> false


      //2. String toString(int[] a):输出数组元素信息。
      System.out.println(arr1); //[I@776ec8df

      System.out.println(Arrays.toString(arr1));


      //3.void fill(int[] a,int val):将指定值填充到数组之中。
      Arrays.fill(arr1,10);

      System.out.println(Arrays.toString(arr1));

      //4. void sort(int[] a):使用快速排序算法实现的排序
      int[] arr3 = new int[]{34,54,3,2,65,7,34,5,76,34,67};
      Arrays.sort(arr3);

      System.out.println(Arrays.toString(arr3));

      //5. int binarySearch(int[] a,int key):二分查找
      //使用前提:当前数组必须是有序的
      int index = Arrays.binarySearch(arr3,15);
      if(index >= 0){
         System.out.println("找到了,索引位置为:" + index);
      }else{
         System.out.println("未找到");
      }
   }
}