Java 基本知识——first day

打印 上一主题 下一主题

主题 865|帖子 865|积分 2595

注释

注释不会被执行,是写给看代码的人看的。
三种注释

单行注释


多行注释


文档注释


标识符

关键字


Java常见的关键字
考点


总结四个点:

  • 首字母应该以字母、$、_开始;
  • 开始后可以任意字符;
  • 不可用关键字
  • 大小写敏感
 
数据类型

Java是一门强类型语言

强类型语言
比如Java、C++、C
变量定义严格,先定义才能使用。
弱类型语言
比如VB、JS、Python
Java的两大类数据类型

基本类型

Java语言提供了八种基本类型:

  • 四个整数型;
  • 两个浮点型;
  • 一种字符型;
  • 布尔
数值类型
整数类型

  • byte占1个字节

    • -128(-2^7)
    • 127(2^7-1)

  • short占2个字节

    • -32768(-2^15)
    • 32767(2^15 - 1)

  • int(整型)占4个字节

    • -2,147,483,648(-2^31)
    • 2,147,483,647(2^31 - 1)

  • long(长整型)占8个字节。

    • -9,223,372,036,854,775,808(-2^63)
    • 9,223,372,036,854,775,807(2^63 -1)

浮点数类型

  • float(单精度)占4个字节

    • 储存大型浮点数可节省空间。

  • double(双精度)占8个字节

    • 默认类型

字符类型

  • char(字符型)占2个字节
  • String(字符串)他不是一个关键字,是一个类
布尔类型

  • boolean(布尔类型)

    • 只能存储true和false。

引用类型

除了基本类型之外的所有数据类型,都是引用类型。
类;接口;数组。(后续专栏讲解)
 
拓展

整数进制

常规使用的基本数据类型为10进制:
而Java程序中,可以对变量赋值为各种进制。
  1.  //默认十进制,二进制为0b,八进制为0,十六进制为0x<br> public class binary {<br>     public static void main(String[] args) {<br>         int i=10;<br>         int i2=010;<br>         int i3=0x10;<br>         System.out.println(i);<br>         System.out.println(i2);<br>         System.out.println(i3);<br>     }<br> }
复制代码
输出结果为:
浮点数特性

由于浮点数具备以下特征:

  • 有限性;
  • 离散性;
  • 舍入误差;
  • 大约;
  • 接近但不等于。
所以我们在实际使用中,要尽量避免使用浮点数进行数值之间的比较。
案例1:两个相同的数值进行比较得false

代码如下:
  1.  float f=0.1f;<br> double d=1.0/10;<br> System.out.println(f==d);
复制代码
输出结果得:
使用调试查询变量数值:

两个数值都相同,但输出结果为false。
案例2:过长数值+1,依然等于原数值

代码如下:
  1.  float d1=213213213213213213f;<br> float d2=d1+1;<br> System.out.println(d1==d2);
复制代码
输出结果为:

使用调试查询变量数值:

可以看见,浮点数值一但过大,则会直接修改表示形式,就无法对比数值大小了。
解决方案(BigDecimal)

如果涉及浮点数比较大小,最好使用 数据类 BigDecimal 数学工具类。
字符拓展

字符

所有的字符,本身都是Unicode、ASCII码
Unicode(0~65536,2^16)
代码如下:
  1.  char a='a';<br> char A='A';<br> char B='B';<br> System.out.println("a="+(int)a);<br> System.out.println("A="+(int)A);<br> System.out.println("B="+(int)B);
复制代码
运行结果如下:

转义字符

除此之外,字符还具备转义字符的含义,一般可用在如下场景:

  • 需要插入一些关键性的文字;
  • 需要插入一些空格、回车,等特别的字符。
代码如下:
  1.  System.out.println("中间是空格转义符→\t←");
复制代码
输出结果:

 
类型转换

Java运算中,不同类型的数据先转化为同一类型,然后再进行运算。
数据类型优先级


强制类型转换

代码如下:
  1.  public class type_Convert {<br>     public static void main(String[] args) {<br>         int i=128;<br>         byte b= (byte) i;//因为最大值是127,当128的时候就是补码<br>         System.out.println(i+"\n"+b);<br>     }<br> }
复制代码
输出结果如下:
加个括号的形式,就是强制转换,从数据类型的高到低,就需要强制转换。
反之,从低到高就采用自动转换。
自动类型转换

代码如下:
  1.  int o=123;<br> double j=o;
复制代码
扩展补充


  • 不能对布尔类型进行转换。
  • 不能把对象类型转换为不相干的类型。
  • 在把高容量转换到低容量的时候,强制转换。
  • 转换的时候可能存在内存溢出和精度问题,转换后会除去掉小数部分。
  • JDK7 的新特性,数字之间支持用下划线分割。
  1.  int q=10_0000_0000;<br> System.out.println(q);
复制代码
输出结果:
  1.  1000000000
复制代码
变量

定义:可变化的量

  • 每个变量都必须声明其类型;
  • 是最基本的存储单元,其要素包含变量名、变量类型和作用域
变量定义:
  1.  int i = 1;<br> String i = 2;<br> //int、String 变量类型<br> // i 就是变量名称
复制代码
作用域

类变量:


  • 从属与类,可以直接使用类名调用的变量


  • 作用范围全局
  1.  public class action_Scope {<br>     //类变量:从属与类,可以直接使用类名调用的变量。<br>     static double salasy;<br>     public static void main(String[] args) {<br>         //类变量的调用<br>         action_Scope.salasy=200D;<br>         System.out.println(action_Scope.salasy);<br>     }<br> }
复制代码
输出结果:
  1.  200.0
复制代码
实例变量


  • 从属与对象:如果不自行初始化,这个变量则自动唯默认值 0 0.0

    • 布尔变量为true,除了基本类型,其他的引用类型都是null

  • 作用范围,new 实例。
  1.  public class action_Scope {<br>     //实例变量:从属与对象:如果不自行初始化,这个变量则自动唯默认值 0  0.0<br>         //布尔变量为true,除了基本类型,其他的引用类型都是null<br>     String name;<br>     int age;<br>     public static void main(String[] args) {<br>         //实例变量的调用<br>         action_Scope action_scope=new  action_Scope();<br>         System.out.println(action_scope.age);<br>     }<br> }
复制代码
输出结果:
  1.  0<br> null
复制代码
局部变量


  • 作用范围,方法内部
  1.  public class action_Scope {<br>     public static void main(String[] args) {<br>         //局部变量:必须声明和初始化数值<br>         int i = 10;<br>         System.out.println(i);<br>     }<br> }
复制代码
输出结果:
  1.  10
复制代码
常量

一但定义了,就不会变化的量。
  1.  public class Demo1 {<br>     //修饰符不区分先后顺序。<br>     final static double PI=3.14;<br>     static final double π=3.14;<br> }
复制代码
命名规范


  • 所有变量、方法、类名:见名知意;
  • 变量、方法:首字母小写和驼峰原则:mounthSalary

    • 除了第一个单词,后面的单词首字母大写

  • 常量:全大写字母,多个单词使用下划线隔开。

    • MAX_VALUE

  • 类名:首字母大写,驼峰原则
运算符



  • 自增、自减,也可以叫做一元运算符
  • a++和++a的区别在于,先执行再++和先++再执行
  • 很多运算我们会使用Math工具类进行操作
短路运算


  • 当与预算时,如果前者为假,就不会继续向后执行代码了
  • 或运算时,如果前者为真,则不会继续执行后面的代码
位运算

位运算就是将变量与变量用二进制的形式进行 与或非 的计算,一般计算IP地址和子网掩码可用使用位运算

 
面试题:2乘以8怎么运算最快?

利用位运算符,可以根据变量的二进制数值进行移动

优点是运算效率极高(直接是底层机器语言)。
三元运算符

代码:
[code] int en= a

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表