2_基础语法

注释
// 单行注释
/* 多行注释 */ 
/**
*@Descriotion
*@Auther
*/ JavaDoc 文档注释
     
/***                                                                    
 *            .,,       .,:;;iiiiiiiii;;:,,.     .,,                   
 *          rGB##HS,.;iirrrrriiiiiiiiiirrrrri;,s&##MAS,                
 *         r5s;:r3AH5iiiii;;;;;;;;;;;;;;;;iiirXHGSsiih1,               
 *            .;i;;s91;;;;;;::::::::::::;;;;iS5;;;ii:                  
 *          :rsriii;;r::::::::::::::::::::::;;,;;iiirsi,               
 *       .,iri;;::::;;;;;;::,,,,,,,,,,,,,..,,;;;;;;;;iiri,,.           
 *    ,9BM&,            .,:;;:,,,,,,,,,,,hXA8:            ..,,,.       
 *   ,;&@@#r:;;;;;::::,,.   ,r,,,,,,,,,,iA@@@s,,:::;;;::,,.   .;.      
 *    :ih1iii;;;;;::::;;;;;;;:,,,,,,,,,,;i55r;;;;;;;;;iiirrrr,..       
 *   .ir;;iiiiiiiiii;;;;::::::,,,,,,,:::::,,:;;;iiiiiiiiiiiiri         
 *   iriiiiiiiiiiiiiiii;;;::::::::::::::::;;;iiiiiiiiiiiiiiiir;        
 *  ,riii;;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;;;;;iiir.       
 *  iri;;;::::,,,,,,,,,,:::::::::::::::::::::::::,::,,::::;;iir:       
 * .rii;;::::,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,::::;;iri       
 * ,rii;;;::,,,,,,,,,,,,,:::::::::::,:::::,,,,,,,,,,,,,:::;;;iir.      
 * ,rii;;i::,,,,,,,,,,,,,:::::::::::::::::,,,,,,,,,,,,,,::i;;iir.      
 * ,rii;;r::,,,,,,,,,,,,,:,:::::,:,:::::::,,,,,,,,,,,,,::;r;;iir.      
 * .rii;;rr,:,,,,,,,,,,,,,,:::::::::::::::,,,,,,,,,,,,,:,si;;iri       
 *  ;rii;:1i,,,,,,,,,,,,,,,,,,:::::::::,,,,,,,,,,,,,,,:,ss:;iir:       
 *  .rii;;;5r,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,sh:;;iri        
 *   ;rii;:;51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.:hh:;;iir,        
 *    irii;::hSr,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,sSs:;;iir:         
 *     irii;;:iSSs:.,,,,,,,,,,,,,,,,,,,,,,,,,,,..:135;:;;iir:          
 *      ;rii;;:,r535r:...,,,,,,,,,,,,,,,,,,..,;sS35i,;;iirr:           
 *       :rrii;;:,;1S3Shs;:,............,:is533Ss:,;;;iiri,            
 *        .;rrii;;;:,;rhS393S55hh11hh5S3393Shr:,:;;;iirr:              
 *          .;rriii;;;::,:;is1h555555h1si;:,::;;;iirri:.               
 *            .:irrrii;;;;;:::,,,,,,,,:::;;;;iiirrr;,                  
 *               .:irrrriiiiii;;;;;;;;iiiiiirrrr;,.                    
 *                  .,:;iirrrrrrrrrrrrrrrrri;:.                        
 *                        ..,:::;;;;:::,,.                             
 */                                                                     

标识符
关键字[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWFv1knO-1597234615771)(G:\Java_learn\笔记文件\java笔记\picture\image-20200616091409194.png)]

java 所有组成部分都需要名字。类名、变量名、方法名都被称为标识符。

标识符开头只能用字母、美元符号$、下划线开头。


数据类型

强类型语言:要求变量必须先定义在使用

java基本数据类型分为两大类

  1. 基本类型
  • 数值类型
  • 整型 byte 1字节 short 2字节 int 4字节 long 8字节
  • 浮点型 float 4字节 double 8字节
  • 字符型 char 2字节(unicode编码下,每个字符都是两字节)
  • 布尔类型 boolean 1位
  1. 引用类型
  • 类 接口 数组

定义long 变量数值后方要加L / l

定义float 变量数值后方要加F / f

java中直接输入整数则默认为int类型整数,带有小数点的实数默认为double类型,为了防止数值范围过小,需要在数值后方加字母


进制拓展

二 进制 0b

十 进制

八 进制 0

十六进制 0x


字符集拓展
  • ASCII 码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间
  • GB 2312 编码或 GBK 编码中,一个英文字母字符存储需要 1 个字节,一个汉字字符存储需要 2 个字节
  • UTF-8 编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节
  • Unicode 编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节
  • UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节(Unicode 扩展区的一些汉字存储需要 4 个字节)
  • UTF-32 编码中,世界上任何字符的存储都需要 4 个字节

浮点数误差

最好完全避免使用浮点数进行比较

也不要用浮点数进行金钱计算

可以使用数学工具类 BigDecimal


字符拓展

所有字符本质都是数字,采用Unicode编码

U0000 - UFFFF

char c2= '\u0061'
四 位 十 六 进 制 数 1 6 4 四位十六进制数16^4 164


类型转换
  • 大容量转换为小容量需要强制转换

  • 小容量转换位大容量可以自动转换

  • 可能会出现精度、内存溢出问题

  • 不能对布尔类型进行转换

bool->byte->char、short->int->long->float->double

JDK7新特性,数字之间可以用下划线分割

int money = 10_000_000_000;

操作大数要注意溢出问题
int money = 10_000_000_000;
int year = 20 ;
long total=(long)money*year; //需要提前进行类型转换
public class demo02 {
    public static void main(String[] args) {
        short a=1;
        byte b=2;
        long c=12344554332232L;
        System.out.println(a+b+c); //自动提升到最大的类型
        System.out.println(a+b); //当到达不了int型时,自动提升到int型
    }
}

变量类型作用域
public class demo02 {
    static int allClicks = 0;   //类变量
    String str = "hello,world"; //实例变量
    public void method() {      //方法中放局部变量
        int i = 0;  //局部变量
    }
}

方法体外,类体内声明的变量为成员变量(实例变量、类变量)

方法体内部声明的变量为局部变量

成员变量会默认进行初始化,布尔类型会初始化为false,char初始化为一个空格,其他基本数据类型初始化为0 / 0.0。引用类型初始化为null

实例变量:从属于对象

类变量:从属于类 ,static修饰

局部变量:(形参、方法局部变量、代码块局部变量)需要进行显式初始化

为何局部变量不能有访问修饰符

因为局部变量本身就是一种访问权限的设定

只能在局部调用,也就是说局部变量的生命周期在{}之中除了这个方法外界是没办法访问你这个变量,所以不需要用任何修饰符修饰。


常量

不可以改变的数值,常用大写字母做名字

final doubul PI = 3.14;

final为修饰符 ,修饰符的顺序不分前后


命名规范
  • 类成员变量:首字母小写与驼峰命名法 lastName
  • 局部变量:首字母小写与驼峰原则
  • 常量:大写字母与下划线 MAX_VALUE
  • 类名:首字母大写与驼峰原则
  • 方法名:首字母小写与驼峰原则

Math类

java没有幂运算,所以可以借助Math类

double pows = Math.pow(2,3);

逻辑运算符

&&

||

!

位运算 & | ~ ^ 异或 >> << >>>

短路运算

a&&(b++)

当a为flase时,不会再执行b++


三元连接符
字符串连接符: +

当 + 两侧出现String类型时,会先将所有变量转换为字符串类型,在连接字符串

public class demo02 {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        System.out.println("a+b= " + a + b);
        System.out.println(a + b + "a+b= ");
    }
}
输出: a+b= 1010
输出: 20a+b=
        int score=90;
        String scoreStatus=score<60? "不及格":"及格";
        System.out.println(scoreStatus);

包级制

为了更好地组织类,java提供了包机制,用于区别类名的命名空间。

包类似于文件夹,让相同的文件名可以在不同文件夹内共存。

一般用公司域名倒置作为包名 com.baike.www

package com.baike.blog;   //必须在最上方

导入包

import com.baike.www.demo02;

javaDoc

javadoc -encoding UTF-8 -charset UFT-8 demo01.java

字面量、常量、变量
int a;               //a为变量
final int a;         //a为常量
String str = "hello,World!"; //hello,World!为字面量 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值