Java教程

java

本文主要是介绍java,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、Hello Worid示例:

public class hello {
    //输入psvm 输出一个main方法
    public static void main(String[] args) {
        //输入sopt 打印字符串hello wroid
        System.out.print("hello wroid");//快捷命令sout
    }//快捷命令psvm
}

2、注释:

//单行注释:只能注释一段文字

/*
多行注释:
    可以注释一段文字
*/

//文档注释:/** */

3、标识符:

​ 1、类名变量名方法名都被称为标识符

​ 2、所有标识符只能以字母(A-Z或a-z)美元符($)、或者下划线(_)开始

​ 3、标识符是大小写敏感的


4、什么是字节:

  • 位(bit):计算机内部储存最小单位,11001100是一个八位二进制数。

  • 字节(byte):计算机数据处理的基本单位,习惯上用大写B表示。

  • 1B(byte) = 8bit(位)

  • 字符:指计算机中使用的字母、数字、字和符号


  • 1bit表示1位
  • 1Byte表示一个字节1B = 8b
  • 1024B = 1KB

5、数据类型:

1、强类型语言:

  • 要求变量的使用要严格规定,所有变量必须先定义才能使用
  • 特点:安全性高、速度慢

2、弱类型语言:

  • 要求变量的使用要严格规定,所有变量必须先定义才能使用

3、数据类型分为两类

  • 基本类型(primitive type)

  • 引用类型(reference type)


数据类型 变量名 = 值;可以用逗号隔开声明多个同类变量

//八大基本数据类型
    //整数
int num1 = 10;//最常用 占4个字节范围:-9223372036854775808-9223372036854775807
byte num2 = 20;//占1个字节范围:-128-127
short num3 =30;
long num4 = 30L;//Long类型要在数字后面加L

//小数:浮点数
float num5 = 50.1F;//float类型要在数字后面加F
double num6 = 3.1415926;

//字符类型
char name = 'A';

//字符串,String不是关键词,是一个类
String namea = "十一点";

//布尔值:是非
boolean flag = true;
//boolean flag = false;

整数拓展

 public static void main(String[] args) {
        // 整数拓展 :   进制    二进制0b    八进制0    十进制    十六进制0x
        int i = 10;
        int i2 = 010;//八进制0
        int i3 = 0x10;//十六进制0x

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);

        System.out.println("----------------------------------------------------");

        //浮点数拓展
        float f = 0.1f; //0.1
        double d = 1.0/10;//0.1

        System.out.println(f==d);//false

        float d1 = 2435342543543534534255f;
        float d2 = d1+1;

        System.out.println(d1==d2);//true

        //float 有限  离散  舍入误差   大约   接近但不等于
        //double
        //最好完全使用浮点数进行比较
        //最好完全使用浮点数进行比较
        //最好完全使用浮点数进行比较

        System.out.println("----------------------------------------------------");

        //字符拓展
        char c1 = 'A';
        char c2 = '中';

        System.out.println(c1);

        System.out.println((int)c1);//强制类型转换

        System.out.println(c2);

        System.out.println((int)c2);//强制类型转换

        //所有的字符本质都是数字
        //编码 Unicode 表:(97 = a  65 = A) 2字节 0-65536

        //U0000 UFFFF

        char c3 = '\u0061';
        System.out.println(c3);

        System.out.println("----------------------------------------------------");

        //转义字符
            //  \t  制表符
            //  \n  换行
            //  .......等其他转义符

        System.out.println("Hello\tWroid");

        System.out.println("Hello\nWroid");
        
    }

结果:

10
8
16
----------------------------------------------------
false
true
----------------------------------------------------
A
65
中
20013
a
----------------------------------------------------
Hello	Wroid
Hello
Wroid

进程已结束,退出代码为 0

6、类型转换

  • 由于java是强类型语言,所以要进行有些运算的时候,需要用类型转换

    ​ 低 -------------------------------------------------------------------------------------> 高

    ​ byte,short,char ---> int --->long ---> float --->double

  • 运算中,不同类型的数据先转化为同一种类型,然后再运算

  • ​ 强制转换

  • ​ 自动转换

public static void main(String[] args) {
    int i = 128;
    byte b = (byte) i;//强制类型转换,内存溢出

    double c = i;//自动类型转换

    //强制类型转换    (类型)变量名     高------低
    //自动类型转换    低-------高

    System.out.println(i);
    System.out.println(b);
    System.out.println(c);

    /*注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相关的类型
        3.在把高容量转换到低容量的时候,强制转换
        4.转换过程中可能存在内存溢出,或者精度不准的问题
    */

    //精度不准问题
    System.out.println("1、------------------------------------------------------");
    System.out.println((int)67.5);
    System.out.println((int)10.4f);

    //内存溢出问题
    System.out.println("2、------------------------------------------------------");
    //操作比较大的数字时,要注意溢出问题
    //jdk7新特性,数字之间可以用下划线分割
    int money = 10_0000_0000;
    int years = 20;

    int total = money*years;//-1474836480,计算时溢出了
    System.out.println(total);

    long total2 = money*years;//默认类型是int,转换前已经出现问题了
    System.out.println(total2);

    long total3 = money*((long)years);//先把一个数转换成long
    System.out.println(total3);

    //字符与数字转换
    System.out.println("3、------------------------------------------------------");
    char d = 'a';
    int e = d+1;
    System.out.println(e);//98
    System.out.println((char)e);//b
}

结果:

128
-128
128.0
1、------------------------------------------------------
67
10
2、------------------------------------------------------
-1474836480
-1474836480
20000000000
3、------------------------------------------------------
98
b

进程已结束,退出代码为 0

7、变量、常量、作用域

变量

  • 变量就是可以变化的量

  • java中每个变量都必须声明其类型

  • java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域

    数据类型 变量名 = 值;可以用逗号隔开声明多个同类变量


作用域

  • 类变量
  • 实例变量
  • 局部变量
public class demo04 {

    ///类变量 static
    static double salary = 2500;

    //属性:变量
    //实例变量:从属于对象;如果不自行初始化,这个类型的默认值  0 0.0
    //布尔值:默认是false
    //除了基本类型,其余的默认值都是null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {

        //局部变量;必须声明和初始化值
        int i = 10;
        System.out.println(i);

        //变量类型(可自定义) 变量名字 = new demo04();
        demo04 demo04 = new demo04();
        System.out.println(demo04.age);
        System.out.println(demo04.name);

        //类变量
        System.out.println(salary);

    }

    //其他方法
    /*public viod add(){
        System.out.println();
    }*/
}

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
  • 常量可以理解为一个特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名 = 值;
final double PI = 3.14
  • 常量名一般使用大写字符
//修饰符,不存在先后顺序
static final double PI = 3.14;


public static void main(String[] args) {
    System.out.println(PI);
}

变量的命名规范

  • 所有变量、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则

8、运算符

  • java支持的运算符: 优先级()

    • 算术运算符:+、-、*、/、%、++、--

    • 赋值运算符:=

    • 关系运算符:>、<、<=、==、!=instanceof

    • 逻辑运算符:&&、||、!

    • 位运算符:&、|、^、~、>>、<<、>>>(了解!!!)

    • 条件运算符:?、:

    • 扩展赋值运算符:+=、-=、*=、/=


自增自减运算符、初识Math类

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

        //++ -- 自增,自减 一元运算符
        int a = 3;

        int b = a++;//执行完这行代码后,先给b赋值,再自增
        //a = a + 1
        System.out.println(a);
        //a = a + 1;
        int c = ++a;//执行完这行代码后,先自增,再给b赋值

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        //幂运算2^3    2*2*2 = 8   很多运算,我们会使用一些工具类来操作
        double pow = Math.pow(3,2);
        System.out.println(pow);
    }
}

逻辑运算符:

public static void main(String[] args) {
    // 与(and)   或(or)   非(取反)
    boolean a = true;
    boolean b = false;

    System.out.println("a && b:"+(b&&a));//与运算:两个变量都为真,结果才为true
    System.out.println("a || b: "+(b||a));//或运算:两个变量有一个为真,则结果为true
    System.out.println("!(a && b):"+!(b&&a));//如果是真,则变为假,如果是假则变为真

    //短路运算
    int c = 5;
    boolean d = (c<4)&&(c++<4);
    System.out.println(d);
    System.out.println(c);

}

位运算符:

public static void main(String[] args) {
    /*
    A = 1010 0110
    B = 0100 1011
    ----------------------------
    A&B = 0000 0010 //相同为1
    A|B = 1110 1111 //有1则1
    A^B = 1110 1101 //相同为0
    ~B = 1011 0100  //取反


    2*8 = 16 2*2*2*2
    效率极高
    << *2
    >> /2

    0000 0000   0
    0000 0001   1
    0000 0010   2
    0000 0011   3
    0000 0100   4
    0000 1000   8
    0001 0000   16
    */
    System.out.println(2<<5);
}

条件运算符:

//三元运算符
public static void main(String[] args) {
    //x ? y : z
    //如果x == true,则结果为y,否则结果为z

    int score = 60;
    String type = score<60?"不及格":"及格";//必须掌握
    //if
    System.out.println(type);

    if(score< 60){
        System.out.println("不及格");
    }
    else  {
        System.out.println("及格");
    }

扩展赋值运算符:

public class demo06 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a+=b; //a=a+b
        a-=b;//a=a-b

        System.out.println(a);

        //字符串连接符    +  ,  string
        System.out.println(""+a+b);
        System.out.println(a+b+"");

    }

}
这篇关于java的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!