VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > JavaScript教程 >
  • 浅薄的一些JAVA基础知识

JAVA基础语法

标识符与关键字

JAVA关键字基本列表:

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while
关键字用于区分代码的类型,相当于代码的"名字"        
而且文件取名不允许取名如上表所示的名字(包括方法之类的)        
JAVA的所有组成部分都需要名字。类名,变量名以及方法名都会被称为"标识符"        

标识符的注意点:

  • 所有的标识符都应该以字母(A-Z或者a-z),符号"$",或者下划线("_")开始
  • 首字符之后可以是字母(A-Z或者a-z),符号"$",或者下划线("_"),或任何数字字符组合
  • 不能使用关键字作为变量名或者方法名
  • 标识符对于大小写是敏感的
  • 合法例子:abc,$123,_hahah,__123_Abc
  • 非法例子:13abc,%123,-#isyy
  • 标识符的使用可以用中文名和拼音
    例子:
    public class Demo1 {
        public static void main(String[] args) {
          String 碧蓝航线="我想捞到夕立啊啊啊";
          System.out.print(碧蓝航线);
        }
    }
    
    但是不建议这样,毕竟大家都习惯了用英文表示,其次就是你写代码的时候有可能有外国友人看到,或者有些电脑识别不出中文会报错

数据类型

图解:

JAVA的数据类型也分为强类型语言和弱类型语言

强类型:要求变量的使用严格按照规定,所有变量都需要定义后才能使用(例如C和JAVA等)
弱类型:与强类型相反(例如VB和JS)
基本类型的转换排序(从低到高):byte,short,char→int→long→float→double(可从低到高而不能从高到低,byte,short和char不能相互转换,而且int不能转换成前者任何一个)
强制转换类型也可以用(类型名)+balabala来进行转换,但是要注意精度丢失或者内存溢出。十分注意这种强制转换不能对布尔值(boolean)使用。通常用于高转低,不用于低转高

变量

  • 含义:即为可以变化的量
  • 因JAVA是一种强类型的语言,所以每个变量都需要声明才能够使用!!
  • JAVA变量是程序中最基本的存储单元,其中拥有的要素有变量名,作用域和变量类型
  • 例如:
    public class Demo1 {
      public static void main(String[] args) {
          int hello=1314;
          //数据类型 变量名 = 值
          int love,peace;
          //可以用逗号来隔开并声明多个变量
      }
    }
    
  • 注意事项:
    1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型
    2. 变量名必须是合法的标识符
    3. 变量声明是一个完整的语句,因此每一个变量声明必须以分号来进行结尾
  • "String"不是关键字,类

(额外话题)字节

  • 字节分为:bit,byte(B),KB,MB,GB,TB
  • 位(bit):是计算机内部数据存储的最小单位,由八位二进制组成
  • 字节(byte):是计算机数据处理的基本单位,由八个bit组成,通常用大写B来表示
  • 1B=8bit
  • 区别:字符是指计算机使用的字母,数字,字和符号
  • 关系:
    1. 1bit表示一位
    2. 1Byte表示一个字节
    3. 1024B=1KB
    4. 1024KB=1MB
    5. 1024MB=1GB
    6. 1024GB=1TB

电脑的32位操作系统和64位操作系统

  • 含义:例如64位操作系统指的是它可以最多拥有128GB的寻址能力,而32位操作系统只有4GB
  • 性质:64位的操作系统可以装32位操作系统使用的cpu,也可以装64位操作系统的cpu,而32位操作系统不能进行此操作,它只能装对应的32位操作系统需要的cpu(因为其关乎操作系统的寻址能力)
  • 64位操作系统最多可以支持128GB的操作内存,但是32位操作系统只能支持4GB的操作内存(操作内存可理解成生活中装电脑用的内存条的大小)

JAVA支持以下运算符

  • 算数运算符:+,-,*,/,%(模运算),++,--
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=(意为不等于)
  • 逻辑运算符:&&(相当于数学中的交),||(相当于数学中的或),!(判断真假)
  • 位运算符:&,|,^,~,>>,<<,>>>(了解即可)
    基本用法(需要看二进制形式):
    1.&是双目运算符。运算法则是:如果a、b两个操作数对应位都是1,则c的该位是1,否则是0。
    2.|是双目运算符。运算法则是:如果a、b两个数据对应位都是0,则c的该位是0,否则是1。
    3.~是单目“按位非”运算符。运算法则是:如果a对应位是0,则c的该位是1,否则是0。
    4.^是双目“按位异或”运算符。运算法则是:如果a、b两个数据对应位相同,则c的该位是0,否则是1。
    5. <<和>>表示二进制中向左向右移动位,左移后空缺的地方填0(高位丢弃,低位补零),右移后空缺的地方填1(低位丢弃,正数高位补0,负数高位补1)
    6.>>>表示在二进制中无符号向右移动位,空缺的地方填0(高位补零,低位丢弃),这个>>>还有其他的一些小知识,日后补上!!
  • 条件运算符:?,:
  • 三目运算符:
    例:x?y:z
    如果x==true,则结果为y,反之。(y与z进行比对)

Scanner的使用

使用Scanner需要有个声明:import java.util.Scanner
基本语法:

       public class Demo01{
       public static void main(String[] args){

       Scanner input=new Scanner(System.in);
       }
       }

在if...else...语句中,括号内如果想判断输入的数是否为整数,打出input.hasnextInt()即可
比较特殊的情况:String str=input.next()只能输出像"hello"这样不带空格的字符串,不然打入的字符串中如果含有空格,只会读取空格前的字符串。如果想输出如"Hello World"这种带空格的字符串,则需打出这种格式的Scanner:
String str=input.nextLine(),这样我们的Scanner读取Hello World的时候会连同空格一起读取,除非我们按了回车键。
注意:凡是属于IO流的类如果不关闭就会一直占用资源,最好就是用完就关,输入input.close()即可

结构

顺序结构

JAVA的语言输出会按照行的顺序来进行输出
虽然好理解,但是他是每个算法都离不开的一种算法结构

if结构

if结构有if....else...结构和if.....结构和if.......else if.......else结构

  • if....else.....结构会先判断括号内关系式是否为真,如果为真就运行if里的内容,如果为假会运行else的内容
  • if.....结构只会运行真的情况
  • if....else if....else结构会先判断if内的关系式是否为真,若为真就会运行if内的程序,若为假就会运行下一个判断,即else if括号内的关系式,若为真就运行其内容程序,若为假就运行else后的内容(else if可叠加)

Switch结构

switch结构大概为:
switch(某个数)
{
case 某个数:
语句;
break;
case 某个数:
语句;
break;
default:
语句
}
若case语句后不加break会导致输出后续不加break的所有case语句,被称为"case穿透"
Switch是一种选择结构,从JDK7开始支持了字符串的类型

While,do....while和for循环结构

while和for的循环类似,但是两者语法不同

  • for:语法为for(int i=0;i<=100;i++){程序内容}
  • while:语法为while(i>0){程序内容},会判断括号内的语句是否为真,若为真则继续运行其程序内容
  • do....while:语法为do{程序内容}while(i>0),会先运行do后面的程序内容,之后会判断while后面的括号内容是否为真,若为真则继续运行do后面的程序内容
    小代码:打印9*9乘法表:
public class Demo1 {
	public static void main(String[] args) {
        for(int i=1;i<=9;i++){       //用于行数的循环
            for(int h=1;h<=i;h++){    //用于列数的循环
                if(h==i){
                    System.out.println(h+"*"+i+"="+(h*i)+"\t");
                }
                else{
                    System.out.print(h+"*"+i+"="+(h*i)+"\t");
                }
            }
        }
	}
}

数组

一维数组

  • 基本定义语法:类型+名字[];
  • 数组的下标:指的是上面[]内的数字,即数组的范围,数组是从0开始计数的
    例如我们定义一个整型数组i[3]={1,2,3,4}
    那么i[0]=1,i[1]=2,i[2]=3,i[3]=4

二维数组

  • 定义语法:类型+名字[][]
  • 其作用类似于线性代数的矩阵

一些矩阵小知识:如果想输出[1,2,3,4,5]这样的数组,只要在System.out.print()括号内输入Arrays.toString(数组名)即可

方法

含义

  • Java的方法是语句的集合,他们在一起执行一个功能。
    • 方法是解决一类问题的步骤的有序组合
    • 方法包含于类或对象中
    • 方法在程序中被创建,在其他地方被引用
  • 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展

定义

图解:

方法的重载

方法的重载与返回类型无关!!!
代码例子(int时):

import java.util.Scanner;
public class Demo1 {
    //主函数
    public static void main(String[] args) {
        int max=max(10,20);          //此时取的方法类型为int整型
        System.out.println(max);
    }

    //比大小的函数
    public static double max(double num1,double num2){
        double result=0;
        if(num1==num2){
            System.out.println("num1==num2");
            return 0;        //终止其方法
        }
        if(num1>num2){
            result=num1;
        }
        else{
            result=num2;
        }
        return result;
    }

    //另一个比大小函数,名字相同但是类型不同
    public static int max(int num1,int num2){
        int result=0;
        if(num1==num2){
            System.out.println("num1==num2");
            return 0;            //同样的终止其方法
        }
        if(num1>num2){
            result=num1;
        }
        else{
            result=num2;
        }
        return result;
    }
}

此时输出的结果为:

代码例子:

import java.util.Scanner;
public class Demo1 {
    //主函数
    public static void main(String[] args) {
        double max=max(10,20);          //此时取的方法类型为double整型
        System.out.println(max);
    }

    //比大小的函数
    public static double max(double num1,double num2){
        double result=0;
        if(num1==num2){
            System.out.println("num1==num2");
            return 0;        //终止其方法
        }
        if(num1>num2){
            result=num1;
        }
        else{
            result=num2;
        }
        return result;
    }

    //另一个比大小函数,名字相同但是类型不同
    public static int max(int num1,int num2){
        int result=0;
        if(num1==num2){
            System.out.println("num1==num2");
            return 0;            //同样的终止其方法
        }
        if(num1>num2){
            result=num1;
        }
        else{
            result=num2;
        }
        return result;
    }
}

输出结果:

方法的名字相同,但是调用的类型不同,输出的类型也同样不同,比如第二幅代码的例子,调用的时double类型方法,那么输出的一定是double类型的方法,这就是方法的重载。前提是两个方法的参数类型要不相同

  • 重载比较官方的定义
    • 重载就是在一个类中,有相同的函数名称,但是形参不同的函数。
  • 方法重载的规则
    • 方法的名称必须相同
    • 参数列表必须不同(个数不同或类型不同,参数排列顺序不同等等.....)
    • 方法的返回类型可以相同也可以不相同。
    • 仅仅返回类型不同不足以成为方法的重载。
  • 实现理论:
    • 方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,宜选择对应的方法,如果匹配失败,则编译器会报错。
  • 出  处:https://www.cnblogs.com/starocean/p/14562117.html

相关教程