Java1

Java入门

注释

单行注释

多行注释

文档注释

字节

数据类型

八大数据类型(基本数据类型)

//整数
int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 30L;  //long类型要在数字后面加L

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

//字符
char a = 'A';
//字符串,String不是关键字,而是类
String b = "ABCD";

//布尔值
boolean flag1 = true;
boolean flag2 = false;

引用数据类型

  1. 接口
  2. 数组

数据类型拓展

整数拓展

二进制0b 十进制 八进制0 十六进制0x

int a = 10;
int b = 010;    //八进制0
int c = 0x10;   //十进制0x  0~9 A~F 16

System.out.println(a);
System.out.println(b);
System.out.println(c);
浮点数扩展
import java.math.BigDecimal;   //BigDecimal  数学工具类,表示银行业务,钱

浮点型(float,double):有限 离散 舍入误差 大约 接近但不等于,例如:

public class Main {

    public static void main(String[] args) {
        float a = 0.1f;    //0.1
        double b = 1.0/10;  //0.1
        System.out.println(a == b);   //false

        float c = 234567890123f;
        float d = c + 1;
        System.out.println(c == d);   //true
    }
}

最好完全使用浮点数进行比较

字符扩展

所有的字符本质还是数字

public class Main {

    public static void main(String[] args) {
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);   //强制转换
        
        System.out.println(c1);
        System.out.println((int)c2);   //强制转换
    }
}

编码

转义字符
对象 从内存分析
public class Main {

    public static void main(String[] args) {
        String a = new String("hello world");
        String b = new String("hello world");
        System.out.println(a == b);   //false

        String c = "hello world";
        String d = "hello world";
        System.out.println(c == d);    //true
    }
}
布尔值扩展
Boolean flag =true;
if (flag = true){} == if (flag){}

类型转换

  1. 强制类型转换 (类型)变量名称 高—低

    public class Main {
    
        public static void main(String[] args) {
            int i = 12;
            byte a = (byte)i;   //如果数值过大,容易导致内存溢出
            System.out.println(i);
            System.out.println(a);
        }
    }
    
  2. 自动类型转换 低—高

    public class Main {
    
        public static void main(String[] args) {
            int i = 12;
            double a = i;
            System.out.println(i);
            System.out.println(a);
        }
    }
    
  3. 注意点:

    • 不能对布尔值进行转换
    • 不能把对象类型转换为不相干的类型
    • 在把高容量转换为低容量时,强制转换
    • 转换的时候可能存在内存溢出(操作过大的时候)或者精度问题 JDK7新特性,数字之间可以用下划线分割

变量,常量,作用域

变量

  1. 变量是可以变化的量 变量必须声明 变量类型 变量名字 = new 变量名字

  2. Java变量是最基本的存储单元,其要素包括变量名,变量类型和作用域 //数据类型 变量名 = 值

  3. 注意事项:

    • 每个变量必须有类型,可以是基本类型,也可以是引用类型
    • 变量必须是合法的标识符
    • 变量声明是一条完整的语句,每个变量写完必须以分号结束
  4. 变量的命名规范

    • 所有变量、方法、类名:见名知意
    • 类成员变量:首字母小写驼峰原则,除了第一个单词以外,后面的单词首字母大写
    • 局部变量:首字母小写驼峰原则
    • 常量:大写字母下划线
    • 类名:首字母大写驼峰原则
    • 方法名:首字母小写驼峰原则

变量作用域

实例变量

从属于对象,如果不自行初始化,则这个类型的默认值为0,0.0

布尔值的的默认类型是false,除了基本类型,其他的默认值都是null

局部变量

必须声明和初始化值

类变量 static

加上static关键字是存储于类

常量

  1. 常量:初始化后不能改变值,不能变动的值 final 常量名 = 值 (final是修饰符,不存在先后顺序)
  2. 常量名一般用大写字符

运算符

Java支持此下运算符:

  • 算术运算符:+,-,*,/,%,++,–

    • 自增自减运算符(一元运算符):++,–

      public class Main {
      
          public static void main(String[] args) {
              int a = 3;
              System.out.println(a);
              int b = a++;
              //a = a + 1
              System.out.println(b);    //执行完这行代码后,先给b赋值,再自增
              int c = ++a;
              //a + a + 1
              System.out.println(c);    //执行完这行代码前,先自增,再给c赋值
      
              //幂运算
              double pow = Math.pow(2,3);
              System.out.println(pow);
          }
      }
      
  • 赋值运算符:=

  • 关系运算符:>,<,=,<=,==,!= 返回结果:正确/错误

    public class Main {
    
        public static void main(String[] args) {
            int a = 12;
            int b = 20;
            System.out.println(a>b);
            System.out.println(a<b);
        }
    }
    
  • 逻辑运算符:&&,||,!

  • 位运算符:&,|,^,~,>>,<<

    /*
    A = 0011 1100
    B = 0000 1101
    A&B = 0000 1100
    A|B = 0011 1101
    A^B = 0011 0001
    ~B = 1111 0010
    
    <<左移   相当于*2
    >>右移   相当于/2
    根据二进制表:
    0000 0000   0
    0000 0001   1
    0000 0010   2
    0000 0011   3
    0000 0100   4
    0000 1000   8
    0001 0000   16
     */
    
  • 条件运算符:?:

    x ? y : z      //如果x==true,则结果为y,否则结果为z
    
  • 扩展赋值运算符:+=,-=,*=,/=

  • 优先级

Java流程控制

Scanner

用户交互Scanner

java.util.Scanner是Java 5的新特征,我们可以通过Scanner来获取用户输入基本语法:

Scanner s = new Scanner(System.in);

通过Scanner类的next()和nextLine()方法获取输入的字符串读取前我们一般需要使用hasnext()与hasnextLine()判断是否还有输入的数据

Scanner进阶

顺序结构

Java基本结构是顺序结构,除非特别指明,否则就按照顺序一句一句执行

顺序结构是最简单的算法,它是任何一个算法都离不开的一种基本算法结构

选择结构

if

if单选结构

语法

if (布尔值){
    //如果布尔值表达式为true将执行的语句
}
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入内容");
        String s = scanner.nextLine();
        //equals:判断字符串是否相等
        if (s.equals("hello")){
            System.out.println(s);
        }
        System.out.println("end");
        scanner.close();
    }
}
if双选结构

语法

if (布尔表达式){
    //如果布尔值表达式为true将执行的语句
}else {
    //如果布尔值表达式为false将执行的语句
}
if多选结构

语法

if (布尔表达式1){
    //如果布尔值表达式1为true将执行的语句
}else if (布尔表达式2){
    //如果布尔值表达式2为true将执行的语句
}else if (布尔表达式3){
    //如果布尔值表达式3为true将执行的语句
}else {
    //如果以上布尔值表达式都不为true将执行的语句
}
if嵌套结构

switch

switch case 语句判断一个变量与一系列值中的某个值是否相等,每个值称为一个分支

语法

switch (expression){
    case value:
        //语句
        break;
    case value:
        //语句
        break;
    default://可选
        //语句
}

switch语句中的变量类型可以是:

  • byte,short,int或者char

  • 从Java SE 7开始,switch支持字符串String类型

    jdk7新特性,表达式可以是字符串(字符的本质是数字),

    反编译 Java——class(字节码文件)——反编译(IDEA)

  • case标签必须为字符串常量或者字面量

循环结构

while

while是最基本的循环,它的结构是

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

只要布尔表达式为true,循环就会一直执行下去

do while

语法:

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

do while 循环至少执行一次

while 和do while 循环的区别:

  • while先判断后执行,do while先执行后判断
  • do while 总是保证循环至少执行一次

for

for 循环是支持迭代的一种通用结构是最有效、最灵活的循环

for 循环执行的次数是在循环前就确定的,语法:

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

增强for 循环:

  • Java 5引入了一种用于数组或集合的增强型for语句

  • 语法格式

    for (声明语句:表达式){
        //代码语句
    }
    
    • 声明语句:声明新的局部变量,该变量的类型必须与数组元素的类型匹配,其作用域限定在循环语句块,其值与数组元素的值相等

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

break continue goto

break用于强行退出循环,不执行循环中剩余的语句

continue用于终止某次循环过程,即跳过循环中尚未执行的语句,接着进行下一次是否执行循环的判定

goto关键字

Java流程控制例子

打印三角形

public class Main {

    public static void main(String[] args) {

        for(int i = 1; i <= 5; i++) {
            for (int j = 5; j >= i; j--){
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++){
                System.out.print("*");
            }
            for (int j = 1; j < i; j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

打印九九乘法表

public class Main {

    public static void main(String[] args) {

        for(int i = 1; i <= 9; i++) {
            for(int j = 1; j <= i; j++) {
                System.out.print(i + "*" + j + "=" + (i * j) + "\t");  //print()输出后不会换行
            }
            System.out.println();  //println()输出后会换行
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值