第一个程序 Hello,World!

  1. 随便新建一个文件夹,存放代码
  2. 新建一个Java文件
    • 文件后缀名为java
    • Hello.java
    • 【注意点】系统可能没有显示后缀名,必须手动打开
  3. 编写代码
public class Hello{
public static void main(String[] args){
System.out.print("Hello,World!");
} }
  1. 编译 javac java文件(加后缀),会生成一个class文件
  2. 运行class文件 Java文件(不需要加后缀)

可能遇到的情况

  1. 每个单词注意大小写
  2. 输出内容尽量用英文
  3. 文件名和类名(class)必须保持一致
  4. 符号使用了中文,必须用英文



IDEA安装

IDE:集成开发环境

  1. 百度搜索IDEA 下载安装
  2. 安装下一步下一步 注意只选 64-...和 java
  3. 安装后运行 新建项目 百度可以搜索IDEA性能优化,设置好后
  4. 新建一个空项目,new project----enpemty---打开后空项目new---Module--next--next---Finish

    打开后输入快捷键pvsm sout可快速输入



Java基础语法

  1. 注释
  • 单行注释://
  • 多行注释:/* 注释内容 */
  • 文档注释:/** * * */
  1. 标识符
  • 关键字
  • 所有标识符都应该以字母(A-Z或a-z),美元符号$、或下划线()开始
  • 首字符之后可以是字母(A-Z或a-z),美元符号$、或下划线()或数字的任意组合
  • 不能使用关键字作为变量名或方法名
  • 标识符的大小写是敏感的
  • 合法标识符举例:age、$salary、_value、 _1_value
  • 不合法标识符举例:123abc、-salary、#abc
  1. 数据类型
  • java属于强类型语言:要求变量使用要严格符合规定,所有变量必须定义后才能使用(安全性高,运行速度慢)

    1. 基本数据类型:

      • 数值类型 --->整数

        ​ --->浮点

        ​ -->字符

      • 布尔类型 true false

    2. 引用数据类型

      • 接口
      • 数组
public class Demo02 {
public static void main(String[] args)
//八大基本数据类型
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L; //long类型要在数字后面加个L
//浮点数
float num5 = 50.1F; //浮点型要在数字后面加个F
double num6 = 3.14159265
//字符
char name = '国';
//String name = "zhaoweihang"
//布尔型 是非
boolean flag = true;
boolean flag1 = false;
}
}
public class Demo03 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制0x 0-9 A-F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=============================");
//====================================================
//浮点数拓展? 银行业务怎么表示?钱
//BigDecimal 数学工具类
//====================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较 //尽量不用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1 System.out.println(f==d); //false float d1 = 2132123123123f;
float d2 = d1 + 1; System.out.println(d1==d2); //true //====================================================
//字符拓展
//====================================================
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 2字节 0-65536 2的16次方=65536 char c3 = '\u0061';
System.out.println(c3); //a //转义字符
// \t tab键 \n换行
System.out.println("Hello\tWorld!");
System.out.println("=============================");
String sa = new String("hello world1");
String sb = new String("hello world1");
System.out.println(sa==sb); String sc = "hello world!";
String sd = "hello world!" ;
System.out.println(sc==sd); //对象 从内存分析 //布尔值拓展
boolean flag = true; if (flag==true){} //新手
if (flag) {} //老手
// less is more 代码要精简易读 }
}
}
  1. 类型转换

    • 由于Java属于最强类型语言,所以需要有些运算的时候,需要用到类型转换

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

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

    • 运算中,不同类型的数据必须转化为同一类型,才可进行运算
    • 强制类型转换
    • 自动类型转换



    public class Demo04 {
    public static void main(String[] args) {
    int i = 128;
    byte b = (byte) i; //内存溢出 //强制转换 (类型)变量名 高---->低
    //自动转换 低----->高 int i1 = 128;
    double b1 = i1; System.out.println(i);
    System.out.println(b);
    System.out.println(i1);
    System.out.println(b1); /*
    注意点:
    1.不能对布尔值进行转换
    2.不能把对象类型转换为不相干的类型
    3.在把高容量转换为低容量时候,强制转换
    4.转换的时候可能存在内存溢出或精度问题!
    */
    System.out.println("================================");
    System.out.println((int) 23.7); //23
    System.out.println((int) 45.89F); //45
    System.out.println("================================");
    char c = 'a';
    int d = c+1;
    System.out.println(d);
    System.out.println((char) d); }
    }
    public class Demo05 {
    public static void main(String[] args) {
    //操作比较大的数的时候,注意溢出问题
    //JDK7新特性, 数字之间可以用下划线分割,且不会被打印出
    int money = 10_0000_0000;
    System.out.println(money);
    int year = 20;
    int total = money*year;//-1474836480 计算的时候溢出了
    long total2 = money*year;//计算前就已经溢出了 long total3 = money*((long)year); //先转换在计算就不会溢出了
    System.out.println(total);
    System.out.println(total2);
    System.out.println(total3);
    }
    }
  2. 变量:可以变化的量

    • java是一种强类型语言,每个变量必须声明其类型

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

    • type  varName  [=value][{,varName[=value]{}];
      //数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量,但是不建议单行定义多个变量
    • 主要事项:

      • 每个变量必须都有类型,类型可以是基本类型,也可以是引用类型
      • 变量名必须是合法标识符
      • 变量声明是一句完整的语句,因此每一个声明必须以分号结束。
    • 变量作用域

      • 类变量
      • 实例变量
      • 局部变量
      public class Veriable{
      static int allClicks=0; //类变量
      String str = "hello world"; //实例变量 public void method(){
      int i = 0; //局部变量
      }
      }
      public class Demo07 {
      
          //类变量  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 Demo07();
      Demo07 demo07 = new Demo07();
      System.out.println(demo07.age);
      System.out.println(demo07.name); //类变量 static
      System.out.println(salary); }
      //其他方法
      public void add(){
      //System.out.println(i);
      }
      }
  3. 常量 初始化后不能改变的量! 不会变动的数值

    • 所谓的常量可以理解为一种特殊的变量,它的值被设定后,在程序运行中不允许改变

    • final 常量名= 值
      final double PI = 3.14;
    • 常量名一般使用大写字母

    • public class Demo08 {
      //修饰符 不存在先后顺序
      static final double PI = 3.14; public static void main(String[] args) {
      System.out.println(PI);
      }
      }
  4. 变量命名规范

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

第2天 第一个程序&IDEA安装&Java基础语法的更多相关文章

  1. 黑马程序员:Java基础总结----类加载器

    黑马程序员:Java基础总结 类加载器   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个 ...

  2. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  3. 黑马程序员:Java基础总结----泛型(高级)

    黑马程序员:Java基础总结 泛型(高级)   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...

  4. 黑马程序员:Java基础总结----静态代理模式&动态代理

    黑马程序员:Java基础总结 静态代理模式&动态代理   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 静态代理模式 public  class  Ts {   ...

  5. 黑马程序员:Java基础总结----枚举

    黑马程序员:Java基础总结 枚举   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...

  6. 黑马程序员:Java基础总结----正则表达式

    黑马程序员:Java基础总结 正则表达式   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 正则表达式 import  java.util.regex.*; 符合一定规 ...

  7. 第一章 –– Java基础语法

    第一章 –– Java基础语法 span::selection, .CodeMirror-line > span > span::selection { background: #d7d4 ...

  8. 黑马程序员:Java基础总结----反射

    黑马程序员:Java基础总结 反射   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 反射 反射的基石:Class类 Class类代表Java类,它的各个实例对象又分别 ...

  9. 黑马程序员:Java基础总结----JavaBean 内省

    黑马程序员:Java基础总结 JavaBean 内省   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! JavaBean  内省 软件包 java.beans 包含与开 ...

随机推荐

  1. mybatis——一级缓存、二级缓存

    一.Mybatis缓存 ● MyBatis包含一个非常强大的查询緩存特性,它可以非常方便地定制和配置缓存.绶存可以极大的提升查询效率. ● MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存 ...

  2. Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer

    作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...

  3. 2.docker下centos镜像

    1.下载并运行 # 交互模式下载并运行centos容器 $ docker run -it centos:latest /bin/bash 1.1 配置centos的环境别名 $ vi /etc/bas ...

  4. vue keep-alive从列表页进入详情页,再返回列表页时,还是之前滚动的位置

    //router.js { path: '/oppo-music', component: () => import('@/views/OppoMusic.vue'), meta: { titl ...

  5. golang 用defer 捕获error 需小心

    有时一个函数内需要根据最后是否出错,决定是否执行某个操作.这时候如果函数的分支又比较多,就会比较麻烦了. defer 处理这个情况刚好合适 func main() { var err error by ...

  6. 五、JavaSE语言基础之流程控制

    流程控制的简单概念 流程控制:指通过关键字控制代码的执行流程; 一.顺序结构:执行顺序从左到右从上到下; 顺序结构无关键字,一般而言大多数代码都是顺序结构; 二.选择结构:根据条件判断是否执行 选择结 ...

  7. Redis配置统计字典

    本章将对Redis的系统状态信息(info命令结果)和Redis的所有配置(包括Standalone.Sentinel.Cluster三种模式)做一个全面的梳理,希望本章能够成为Redis配置统计字典 ...

  8. 42、sort命令

    排序和把相同的放到一起: 42.1.sort命令介绍: sort命令是一个排序介绍,简而言之就是以什么为分割符,对第几列进行什么排序操作: 42.2.sort命令参数介绍: -u #去重,会直接把重复 ...

  9. Vue $emit

    案例演示 需求:点击子组件触发一个事件改变父组件的字体大小. <div id="app"> <p :style="{fontSize: fontSize ...

  10. challenge

    一.查壳 无壳的64位linux文件 二.拖入ida静态分析 F5反编译一下. 发现这段代码实际意义就是把字符串传进v7当中.v7的值就是flag值. 这个函数整体分析下来,各种递归,尝试用c语言来复 ...