Java程序运行机制

  • 编译型(complie)

    (全部JAVA代码->计算机可以执行的代码)

    #操作系统 C/C++

  • 解释型

    (实时编译解释)

    #网页 Java

Java文件经过JAVA编译器编译成.class文件,接着将class文件放入虚拟机JVM中的类装载器中,通过校验器确定代码是否正确,最后到操作系统时才通过解释器运行代码。


IDEA一些快捷编辑语句

  • psvm

  • sout

常用快捷键

  • crtl+shift+enter 当前行任何地方可以快速在末尾生成分号

  • ctrl+] 或 ctrl+[ 大括号匹配,你可以将光标定位在某个大括号一边,定位另一边

  • crtl+点击 直接查看包装类的源码。


JAVA基础语法

1.注释

创建空项目后,点击文件按钮->选择新模块->选择JAVA模块

完成后,再次点击文件按钮->选择项目结构->选择项目设置sdk(注意两个版本号须相同)

  • 单行注释
//单行注释
//输出Hello World
  • 多行注释
 /*多行注释多行注释多行注释多行注释*/
  • 文档注释 JavaDoc
 /*** @Description HelloWorld* @Author zhangchuhui*/
  • 有趣的代码注释

有趣的代码注释

/***                                                                          *          .,:,,,                                        .::,,,::.          *        .::::,,;;,                                  .,;;:,,....:i:         *        :i,.::::,;i:.      ....,,:::::::::,....   .;i:,.  ......;i.        *        :;..:::;::::i;,,:::;:,,,,,,,,,,..,.,,:::iri:. .,:irsr:,.;i.        *        ;;..,::::;;;;ri,,,.                    ..,,:;s1s1ssrr;,.;r,        *        :;. ,::;ii;:,     . ...................     .;iirri;;;,,;i,        *        ,i. .;ri:.   ... ............................  .,,:;:,,,;i:        *        :s,.;r:... ....................................... .::;::s;        *        ,1r::. .............,,,.,,:,,........................,;iir;        *        ,s;...........     ..::.,;:,,.          ...............,;1s        *       :i,..,.              .,:,,::,.          .......... .......;1,       *      ir,....:rrssr;:,       ,,.,::.     .r5S9989398G95hr;. ....,.:s,      *     ;r,..,s9855513XHAG3i   .,,,,,,,.  ,S931,.,,.;s;s&BHHA8s.,..,..:r:     *    :r;..rGGh,  :SAG;;G@BS:.,,,,,,,,,.r83:      hHH1sXMBHHHM3..,,,,.ir.    *   ,si,.1GS,   sBMAAX&MBMB5,,,,,,:,,.:&8       3@HXHBMBHBBH#X,.,,,,,,rr    *   ;1:,,SH:   .A@&&B#&8H#BS,,,,,,,,,.,5XS,     3@MHABM&59M#As..,,,,:,is,   *  .rr,,,;9&1   hBHHBB&8AMGr,,,,,,,,,,,:h&&9s;   r9&BMHBHMB9:  . .,,,,;ri.  *  :1:....:5&XSi;r8BMBHHA9r:,......,,,,:ii19GG88899XHHH&GSr.      ...,:rs.  *  ;s.     .:sS8G8GG889hi.        ....,,:;:,.:irssrriii:,.        ...,,i1,  *  ;1,         ..,....,,isssi;,        .,,.                      ....,.i1,  *  ;h:               i9HHBMBBHAX9:         .                     ...,,,rs,  *  ,1i..            :A#MBBBBMHB##s                             ....,,,;si.  *  .r1,..        ,..;3BMBBBHBB#Bh.     ..                    ....,,,,,i1;   *   :h;..       .,..;,1XBMMMMBXs,.,, .. :: ,.               ....,,,,,,ss.   *    ih: ..    .;;;, ;;:s58A3i,..    ,. ,.:,,.             ...,,,,,:,s1,    *    .s1,....   .,;sh,  ,iSAXs;.    ,.  ,,.i85            ...,,,,,,:i1;     *     .rh: ...     rXG9XBBM#M#MHAX3hss13&&HHXr         .....,,,,,,,ih;      *      .s5: .....    i598X&&A&AAAAAA&XG851r:       ........,,,,:,,sh;       *      . ihr, ...  .         ..                    ........,,,,,;11:.       *         ,s1i. ...  ..,,,..,,,.,,.,,.,..       ........,,.,,.;s5i.         *          .:s1r,......................       ..............;shs,           *          . .:shr:.  ....                 ..............,ishs.             *              .,issr;,... ...........................,is1s;.               *                 .,is1si;:,....................,:;ir1sr;,                  *                    ..:isssssrrii;::::::;;iirsssssr;:..                    *                         .,::iiirsssssssssrri;;:.                      */

2.标识符

  • 关键字

  • 注意点

  1. 所有标识符都应该以字母(A-Z/a-z),美元符号($)、或者下划线(_)开始。
  2. 首字母之后字母(A-Z/a-z),美元符号($)、或者下划线(_)或数字的任意字符组合。
  3. 不能用关键字命名
  4. 标识符是大小写敏感的。

3.数据类型

  • 强类型语言 (要求十分严格)

变量的使用要严格规定,所有变量都必须先定义后才能使用。

  • 弱类型语言

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

    1. 基本类型 primitive type

      • 整数类型 byte、short、int、long
      • 浮点类型 float(四个字节)、double(八个字节)
      • 字符串类型 char(两个字节)
      • 布尔类型 (一个字节)true 和false
      //整数
      int num0=10; //最常用
      byte num1=10;
      short num2=30;
      long num3=30L; //Long类型要在数字后面加L//浮点数
      float num4=50.1F;
      double num5=3.1415926;//单个字符
      char name='A';
      //字符串
      String name1='zhanghui';
      //布尔值
      boolean flag=true;
      
    2. 引用类型 reference type

      • 接口
      • 数组

字节

  • 位bit :计算机内部数据储存的最小单位 10111100是一个8位二进制数
  • 字节byte :计算机处理数据的基本单位,习惯上用B表示
  • 1 B = 8 bit
  • 字符:是计算机中使用的字母、数字、字和符号。

常见面试问题

// 整数拓展 进制问题 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010; //八进制
int i3=0x10; //十六进制//---------------------------------------------------------
//浮点数拓展 银行业务表示?
//BigDecimal 数学工具类
//---------------------------------------------------------//float 表现有限 离散 舍入误差 大约 接近但不等于
//double 
//最好完全避免使用浮点数进行比较//---------------------------------------------------------
//字符拓展 
//---------------------------------------------------------char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换//所有的字符本质还是数字
//编码问题 Unicode 2个字节 0~65536   Excel  2的16次方 = 65536//U0000 UFFFF
char c3='\u0061'; //Unicode编码
System.out.println(c3);//转义字符
// \t 制表符  \n 换行
//输出结果
a
9720013
a//对象 从内存分析//布尔值扩展
//boolean flag=true;
//if(flag){} 等同于 if(flag==true){}

4.类型转换

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

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

int i=128;
byte b=(byte)i; //内存溢出 //强制转换 (类型)变量名 高-->低
//自动转换 低-->高System.out.println(i);
System.out.println(b);//运行结果
128
-128;//----------------------------------------------------------
/*注意点
1.不能对boolean进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出或者精度问题
*/
//数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total=money*years;
System.out.println(total); //输出-1474836480 内存溢出//解决方案
long total1=(long)money*years;
System.out.println(total1); //正常输出 20000000000