• 主页
  • 个人简介
    • 圣墨 photo

      圣墨

      一个爱折腾,有诗有远方的人

    • Learn More
    • Github
    • Cnblogs
    • Weibo
  • 文章
    • 所有文章
    • 所有标签
  • Html&Css
  • Javascript
  • 设计模式
  • 前端性能优化
  • 原生实现专题
  • 数据结构与算法
  • Book
  • 面试题
  • 前端工具
  • 随记

java学习第一天

13 Jan 2019

Reading time ~2 minutes

java学习第一天

一、idea的配置和使用

1、下载安装

  • 根据自己电脑勾选配置, 然后下一步

2、基础设置

  • 全局设置

3、安装插件

4、JDK环境的配置

5、创建JavaSE工程

  • 在src中写代码

  • 运行代码

二、Java语言开发环境

  • Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
  • JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具
  • 三者关系: JDK > JRE > JVM
  • 为了开发方便,我们想在任意的目录下都可以使用JDK的开发工具,则必须要配置环境变量,配置环境变量的意义 在于告诉操作系统,我们使用的JDK开发工具在哪个目录下

三、HelloWorld入门程序

  • Java程序开发三步骤:编写、编译、运行
  • javac.exe: 编译器
  • java.exe: 解释器
  • 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们 所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
  • 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。
  • main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多 少程序,JVM在运行的时候,都会从main方法这里开始执行。

四、常量

五、数据类型

Java的数据类型分为两大类:

  • 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。
  • 引用数据类型:包括 类 、 数组 、 接口

基本数据类型

  • 四类八种基本数据类型:

  • 练习
  public class Variable {
    public static void main(String[] args) {
      // 定义字节型变量
      byte b = 100;
      System.out.println(b);
      // 定义短整型变量
      Shorts s = 1000;
      System.out.printtln(s);
      // 定义整型变量
      int i = 123456;
      System.out.printtln(i);
      // 定义长整型变量
      ong l = 12345678900L;
      System.out.println(l);
      //定义单精度浮点型变量
      float f = 5.5F;
      System.out.println(f);
      //定义双精度浮点型变量
      double d = 8.5;
      System.out.println(d);
      //定义布尔型变量
      boolean bool = false;
      System.out.println(bool);
      //定义字符型变量
      char c = 'A';
      System.out.println(c);
    }
  }

  • long类型:建议数据后加L表示。
  • float类型:建议数据后加F表示。
  • 变量名称:在同一个大括号范围内,变量的名字不可以相同。
  • 变量赋值:定义的变量,不赋值不能使用。

六、数据类型转换

1、自动转换

  • 转换规则: 将 取值范围小的类型 自动提升为 取值范围大的类型。
  byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

2、强制转换

转换规则:将 取值范围大的类型 强制转换成 取值范围小的类型 。

  // double类型数据强制转成int类型,直接去掉小数点。
  int i = (int)1.5;
强烈注意:

Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。

  • 浮点转成整数,直接取消小数点,可能造成数据损失精度。
  • int 强制转成 short 砍掉2个字节,可能造成数据丢失。
  // 定义s为short范围内最大值
  short s = 32767;
  // 运算后,强制转换,砍掉2个字节后会出现不确定的结果
  s = (short)(s + 10);

七、运算符

1、算数运算符

  +, -, *, /, %, ++, --
Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。

2、赋值运算符

  =, +=,  -=, *=, /=, %=

3、比较运算符

  ==, <, >, <=, >=, !=

4、逻辑运算符

  &&, ||, !

5、三元运算符

  int i = (1==2 ? 100 : 200);

八、方法入门

注意事项:
  • 方法必须定义在一类中方法外
  • 方法不能定义在另一个方法的里面
  public class Demo {
    public static void main(String[] args){
  }
      //正确写法,类中,main方法外面可以定义方法
      public static void method(){}
  }

  // 错误写法
  public class Demo {
    public static void main(String[] args){
      //错误写法,一个方法不能定义在另一方法内部
      public static void method(){}
    }
  }

练习

  • 下面程序有问题吗
  public static void main(String[] args){
    short s = 1;
    s+=1;
    System.out.println(s);
  }

分析: s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围 大的类型赋值到取值范围小的类型。但是, s=s+1进行两次运算 , += 是一个运算符,只运算一次,并带有强制转换的特点, 也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过,运行结果是2.

  public static void main(String[] args){
    byte b1=1;
    byte b2=2;
    byte b3=1 + 2;
    byte b4=b1 + b2;
    System.out.println(b3);
    System.out.println(b4);
  }

分析: b3 = 1 + 2 , 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的结果并没 有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。 反之, b4 = b2 + b3 , b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3的结果是什 么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。

tips:

<font color="red">**注意事项**</font> // 红色:注意事项
<font color="green">**正确代码**</font> // 绿色:正确代码
<font color="cyan">**强调**</font> // 蓝色:强调


java  微博  QQ  朋友圈