第一个程序 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. Centos7 安装 Zabbix Server 4.0

    官方参考URL:https://www.zabbix.com/documentation/4.0/start 1. 安装 Apache 2.4(略) 注意系统时间/时区ntp server是否定时同步 ...

  2. 【Android漏洞复现】StrandHogg漏洞复现及原理分析_Android系统上的维京海盗

    文章作者MG1937 CNBLOG博客:ALDYS4 QQ:3496925334 0x00 StrandHogg漏洞详情 StrandHogg漏洞 CVE编号:暂无 [漏洞危害] 近日,Android ...

  3. 【NX二次开发】Block UI 树列表

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  4. 04-拉格朗日对偶问题和KKT条件

    04-拉格朗日对偶问题和KKT条件 目录 一.拉格朗日对偶函数 二.拉格朗日对偶问题 三.强弱对偶的几何解释 四.鞍点解释 4.1 鞍点的基础定义 4.2 极大极小不等式和鞍点性质 五.最优性条件与 ...

  5. Zookeeper 面试题(持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  6. NOIP模拟测试13「矩阵游戏&#183;跳房子&#183;优美序列」

    矩阵游戏 考试时思路一度和正解一样,考试到最后还是打了80分思路,结果80分打炸了只得了40分暴力分 题解 算出来第一列的总值,每次通过加每两列之间的差值得出下一列的总值 算第一列我们只需要让当前点* ...

  7. Golang控制子gorutine退出,并阻塞等待所有子gorutine全部退出

    Golang控制子gorutine退出,并阻塞等待所有子gorutine全部退出 需求 程序有时需要自动重启或者重新初始化一些功能,就需要退出之前的所有子gorutine,并且要等待所有子goruti ...

  8. Java并发之Semaphore源码解析(一)

    Semaphore 前情提要:在学习本章前,需要先了解笔者先前讲解过的ReentrantLock源码解析,ReentrantLock源码解析里介绍的方法有很多是本章的铺垫.下面,我们进入本章正题Sem ...

  9. 技术如何转产品01——1+1>2?

    当业务复杂到一定阶段的时候,效率问题会首当其冲,基本解法是化整为零.分赛道,对应的产物可以是子公司>>事业部>业务单元>项目组. ​好处是目标聚焦.所以问题也会聚焦,工作内容闭 ...

  10. pip安装setuptools_rust报错

    公司项目中有主备CDN存在,由于阿里云以及腾讯云的预热功能不支持自动(一般是云函数),所以就根据云厂商给的脚本稍作更改,手动传入数据来进行预热. 由于之前部署在centos7.7系统python2.7 ...