10.14 Java基础学习 第2天

HELLO WORLD!!!

编写代码

  • 文件后缀为.java

  • Hello.java

  • 文件名与类名一致

 public class Hello{
     public static void main(String[] args){
         System.out.print("Hello,World!");
     }
 }

dos命令:

  • 编译:javac Hello.java

  • 运行class文件:java Hello

Java运行机制

  • 编译型(翻译整本书,可以随时回溯,但不能实时更改)compile

  • 解释型(翻译官一句一句翻译,随时应对更改)explain

  • java对两种类型都涉及

两种类型是翻译的时机不同(一开始就翻译完/边运行边翻译)

  • OS/C/C++使用编译型语言

  • 网页(对速度要求不高)是解释型语言

.java-->.class-->jvm-->os

Java基础

注释(平时写代码必须加!!!)

  • 单行注释

  • 多行注释

  • 文档注释

标识符

变量名

  • A/a/$/_可以开头

  • #%不可以随便加

  • 标识符是大小写敏感的

数据类型

Java是强类型语言

  • 所有变量必须先定义才能使用

  • 安全性高

  • 速度慢

类型

  • 基本类型

    • 整数类型

      • byte(1个字节):-128-127

      • short(2):-32768-32767

      • int(4):-2147483648-2147483647

      • long(8):

    • 浮点类型

      • float(4)

      • double(8)

    • boolean类型

  • 引用类型

    • 接口

    • 数组

 public class Demo2 {
     public static void main(String[] args) {
         //八大基本数据类型primitive type
 ​
         //整数
         int num3 = 10;
         byte num1 = 127;
         short num2 = 30;
         long num4 = 30L;//long类型最后要加L
 ​
         //浮点数
         float num5 = 50.2546F;//float类型后面要加F
         double num6 = 3.1415726535897932384626435464;
 ​
         //字符类型
         char work = 'k';
         String namep = "wdd";//String不是关键词
         
         //布尔值:yes/no
         boolean flag = true;
         boolean flag1 = false;
     }
 }
 ​

浮点数

  • 浮点数float存在误差(有限,离散)

  • 接近但是不等于

  • 使用Bigdecimal类才是精确的

字符型

  • 字符的本质是数字

  • 转义字符

    • /t

    • /n

布尔型

  • 使用if(flag){}而不使用if(flag==true)

类型转换

  • 由于JAVA是强类型语言,所以运算时,需要用到类型转换

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

  • 避免内存溢出

  • 强制转换 (类型)变量名 高---底

    •  转换会造成内存溢出或精度问题!!!
       public class Demo4 {
           public static void main(String[] args) {
               //操作比较大的数的时候,注意溢出问题
               //数字之间可以用下划线分割
               int money = 10_000_00000;
               int years = 20;
               int totel = money * years;
               System.out.println(totel);
               long totel2 = money * years;
               System.out.println(totel2);
               //证明 两个int相乘得到结果后再转化为LONG,此时已经出问题了
               long totel3 = money * ((long)years);//自动提升为long
               System.out.println(totel3);
           }
       }
       ​
  • 自动类型转换 低----高

变量

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

  • java变量是程序中最基本的存储单元

  • 变量包括:

    • 变量名

    • 变量类型

    • 作用域

  • 数据类型 变量名 = 值

类变量

  • static + 类型 +变量名

  • 可以直接调用

实例变量

局部变量

  • 在方法内

  • 必须声明和初始化值

常量

  • 常量名一般使用大写字符

  • 常量值一旦定义便不可更改

  • final + 类型 + 变量名

命名规范

  • 类成员变量:首字母小写和驼峰原则:lastName

  • 局部变量:首字母小写和驼峰原则

  • 常量:全大写和下划线

  • 类名:首字母大写和驼峰原则

  • 方法名:首字母小写和驼峰原则

运算符

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

  • 赋值运算符 =

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

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

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

  • 条件运算符?:

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

  • 幂运算Math.pow(a,b) 表示 a^b

  • 优先级()

包机制

  • 本质就是文件夹

  • 一般将域名倒置做包名 例如:com.baidu.www

JavaDoc

  • javadoc用于保存自己的API文档

Java流程控制

Scanner对象

  • Scanner类用于获取用户输入

  • next()

    • 不能得到带有空格的字符串

    • 只有输入有效字符后将其后面的空白作为分隔符

    • 一定读取到有效字符后才可以结束输入

  • nextline()

    • 以enter为结束符

    • 可以获得空白

顺序结构

选择结构

  • if单选泽

  • if双选择

  • if多选择

  • 嵌套的if

  • switch多选择结构

    •  switch(expression){ 
           
           case  value:
           break;
           default;
       }
    • case穿透(指头铁不写break,所有case都走了一遍)

    • switch支持String类型了

    •  String name = "我弟弟";
           switch(name){
               case "我弟弟":
                   System.out.println("我弟弟");
                   break;
               default:
                   System.out.println("搞咩啊");
           }
       ​

循环结构

  • while循环(先判断后执行)

  • do-while循环(先执行后判断,至少执行一次)

  • for循环

    • for(初始化;布尔表达式;更新)

    • 最有效最灵活的循环结构

    • 循环前次数就确定了

  • 用于数组的增强型for循环

    •      int[] numbers = {1,2,3,4,5};
           for (int x:numbers){
               System.out.println(x);
           }

  • break跳出循环

  • continue跳出本次循环

  • goto

Java方法

  • 方法是语句的集合,他们在一起执行一个功能

  • 方法包含于类和对象中

  • 方法在程序中被创建,在其他地方被引用

  •  public static void main(String[] args) {
               int sum = add(1,2);
               System.out.println(sum);
           }
           public static int add(int a,int b){
           return a+b;
       }

  • 一个方法只完成一个功能,有利于我们后期的拓展

  • 方法包含以下部分

    • 方法体

      • 如果有返回值,必须return

    • 方法头

      • 修饰符

      • 返回值类型

      • 方法名

      • 参数类型

        • 实参

        • 形参

方法的重载

  • 重载就是在一个类中,名称相同,但是形式参数类型不同

    • 名称必须相同

    • 参数列表必须不同

    • 返回类型可以相同也可以不同

    • 仅仅返回类型不同,不能叫做重载

命令行传参

  • 有时候你希望运行一个程序时候再传递给他消息,这就要靠传递命令行参数给main()函数实现

可变参数

  • 在方法声明中,在指定参数类型后加一个省略号

  • 一个方法中只能存在一个可变参数,且可变参数放到最后

  • 实质是传数组

递归

  • 方法自己调用自己就是递归

数组

  • 相同类型数据的有序集合

数组的声明

  • 数组类型 + 名称

    • int[] nums;

    • int nums[];(知道就行,一般不用)

数组的创建

  • 数组名 = new 对应方法;

  • nums = new int[10];

内存分析

  • 方法区

  • 静态初始化(创建+赋值)

  • 动态初始化(使用new)

好家伙,感觉学了一天,但又感觉啥都没学,好像都会,又好像都不会

还是多写代码,任重而道远!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值