Java基础

1 注释、标识符、关键字

1.1 注释

  • 注释并不会执行,是给写代码的看的
  • 书写注释是一个好习惯

Java注释分为三种

  1. 单行注释 //注释

    //这是单行注释
  2. 多行注释 /* 注释 */

    /*
    * .,:,,, .::,,,::.
    * .::::,,;;, .,;;:,,....: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;;:.
    */
  3. JavaDoc:文档注释 /** 注释 */

    /**
    *@Description HelloWord
    *@Author GoddamnCode
    */

1.2 关键字

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while
true false null

Java还有3个保留字:true、false、null。它们不是关键字,而是文字。包含Java定义的值。和关键字一样,它们也不可以作为标识符使用。

1.3 标识符

  • 标识符由数字(09)和字母(AZ 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
  • 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
  • 不能使用关键字作为变量名或者方法名
  • 标识符是大小写敏感
    • Hellohello不是同一个变量名
  • 合法标识符举例:age、$salary、_value、 _1_value
  • 非法标识符举例:123abc、-salary、#abc
  • 可以使用中文命名,但是一般不建议这样去使用。

1.4 数据类型

Java是强类型语言,要求变量的使用要严格符合规定,所有变量都要先定义才能使用。

Java的数据类型分为两大类

1.4.1 基本类型

byte:

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7)
  • 最大值是 127(2^7-1)
  • 默认值是 0
  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
  • 例子:byte a = 100,byte b = -50。

short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15)
  • 最大值是 32767(2^15 - 1)
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是 0
  • 例子:short s = 1000,short r = -20000。

int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31)
  • 最大值是 2,147,483,647(2^31 - 1)
  • 一般地整型变量默认为 int 类型;
  • 默认值是 0
  • 例子:int a = 100000, int b = -200000。

long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63)
  • 最大值是 9,223,372,036,854,775,807(2^63 -1)
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L
  • 例子: long a = 100000L,Long b = -200000L。
    "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

float:

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:float f1 = 234.5f。

double:

  • double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;

  • 浮点数的默认类型为 double 类型;

  • double类型同样不能表示精确的值,如货币;

  • 默认值是 0.0d

  • 例子:

    double   d1  = 7D ;
    double d2 = 7.;
    double d3 = 8.0;
    double d4 = 8.D;
    double d5 = 12.9867;

    7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。

boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false
  • 例子:boolean one = true。

char:

  • char 类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(十进制等效值为 0);
  • 最大值是 \uffff(即为 65535);
  • char 数据类型可以储存任何字符;
  • 例子:char letter = ‘A’;。

1.4.2 引用类型

  • String 是 类不是关键字

  • 接口

  • 数组

1.4.3 整数类型拓展

int i = 10;//十进制
int i2 = 010;//八进制
int i3 = 0x10;//十六进制
int i4 = 0b10;//二进制

1.4.4 浮点数拓展

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

浮点数是有限的、离散的、、有舍入误差、接近但不等于。

1.4.5 字符拓展

字符可以强制转换为数字

char c1 = 'a'
int a = (int)c1;

所有字符本质还是数字

Unicode编码 2字节 0 - 65536

U0000->UFFFF

1.4.5.1 转义字符
例子
\t 水平制表符
\n 换行符
......

1.5 类型转换

Java是强类型语言,在进行一些运算的时候,需要用到类型转换。

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

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

为什么long64在float32之前?

因为小数的优先级大于整数

1.5.1 强制转换

类型 =(类型)变量名 (从高到底)

1.5.2 自动转换

从低到高

1.5.3 注意点

  • 不能对布尔值进行转换
  • 不能把对象类型转换成不相干的类型
  • 在把高容量转换到低容量的时候,强制转换
  • 转换的时候时候可能位数超过对应类型的位数导致数据错误,或者精度问题
//jdk7新特性 数字之间可以用下划线分割
int money = 10_0000_0000;
int year = 20;
long total = money * year;//-1474836480 计算时溢出,计算完时默认结果为int,之后才会转换为long
//先把一个数转换为long即可解决
//或者在数字后加L
long total2 = money * (long)year;
money = 10_0000_0000L;

1.6 变量

  • 变量是可以变化的量
  • Java是一种强类型语言,每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

注意事项:

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

1.6.1 变量作用域

public class Variable{
static int allClicks = 0;//类变量
String str = "hello world";//实例变量
public void method(){
int i = 0;//局部变量
}
}

1.6.2 常量

常量:初始化后不能再改变的值,不会变动的值

final + 类型 + 名 = 值

常量名一般使用大写字母

final double PI = 3.14;

1.6.3 变量的命名规范

  • 所有的变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary(除第一个单词外其他单词首字母大写)
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

1.7 基本运算符

  • 算数运算符:+,-,*,%,++,–
  • 复制运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>
  • 条件运算符: ? :
  • 扩展复制运算符: +=,-=,*=,/=

1.7.1 字符串连接符+

int a = 10;
int b = 20;
System.out.println(" "+a+b);//字符串在前面,会将其他操作数转换成string后进行连接,输出为 1020
System.out.println(a+b+" ");//字符串在后面,前面a+b仍会运算

1.7.2 三元运算符

x ? y : z

如果x为真,结果为y,如果x为假,结果为z

1.8包机制

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

包的本质就是文件夹

包语句的语法格式:

package pkg1[. pkg2[. pkg3...]];

package必须放在最上面

一般利用公司域名倒置作为包名

为了能够使用某一个包的成员,我们需要在Java程序中期明确导入该包。使用"import"语句即可完成此功能

import package1[.package2...].(classname|*);

导入包下所有类 *为通配符

import xxx.xxx.xxx.*;

1.9 JavaDoc生成文档

javadoc命令是用来生成自己API文档的

参数信息

  • @author
  • @version
  • @since 指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值清空
  • @throws 异常抛出情况

使用命令行查看javadoc信息

javadoc -encoding UTF-8 -charset UTF-8 xxx.java

也可在idea中设置鼠标移动在类上自动显示

【Java】java基础的更多相关文章

  1. java必备基础知识点

    Java基础 1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出 ...

  2. Java以基础类库

    Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中. (一)java.lang包 Java最常用的包都属于该包, ...

  3. Java SE 基础:注释

    Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...

  4. Java SE 基础:标识(zhì)符

    Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...

  5. Java SE 基础:常用关键字

    Java SE 基础:常用关键字 常用关键字表

  6. java IO基础操作

    java IO基础,通熟易懂,好久没复习java 基础了.这里是传送门... http://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.ht ...

  7. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  8. [转]Java多线程干货系列—(一)Java多线程基础

    Java多线程干货系列—(一)Java多线程基础 字数7618 阅读1875 评论21 喜欢86 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们 ...

  9. Java 入门基础

    第零章 开始学习Java 1.Java基础最重要 Java学习中,Java的基础.Java面向对象是最关键的,而一些像框架技术等都是建立在基础之上东西. 多多处理问题,积累处理问题的能力. Java框 ...

  10. Java多线程基础:进程和线程之由来

    转载: Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够 ...

随机推荐

  1. LuoguP7859 [COCI2015-2016#2] GEPPETTO 题解

    Content 有 \(n\) 个数 \(1\sim n\).你需要在其中选若干个数.但是还有 \(m\) 个限制,第 \(i\) 个限制格式为 \(a_i\) 不能和 \(b_i\) 一起选.问你一 ...

  2. Mysql 表名忽略大小写-连接字符集随笔记录

    1.参数说明: lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的 lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候 ...

  3. SQL:查询Mysql表结构

    背景:有时需要做数据字典,其中最重要的就是表结构.经整理,编写SQL如下: 代码: 1 -- drop TABLE `cfg_data_dict` ; 2 CREATE TABLE `cfg_data ...

  4. SpringBoot整合redis实现过期key监听事件

    Spring整合redis实现key过期事件监听:https://www.cnblogs.com/pxblog/p/13969375.html 可以用于简单的过期订单取消支付.7天自动收货场景中 1. ...

  5. 串口之完整封装包含发送和接收(windows+ubuntu已通过初步测试)(持续更新)

    这里下载源码 更新日志 16-08-2021 V1.0.3 1.修复接收数据没有将数据传递给应用层的bug 2.windows版本:设置接收数据相邻字节间间隔为5ms 24-09-2020 V1.0. ...

  6. 【LeetCode】448. Find All Numbers Disappeared in an Array 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 方法一:暴力求解 方法二:原地变负做标记 方法三:使用set ...

  7. B. Petya and Exam

    B. Petya and Exam 题目链接 题意 给你一串字符,在这个串中所有出现的字符都是\(good\)字符,未出现的都是\(bad\)字符, 然后给你另一串字符,这个字符串中有两个特殊的字符, ...

  8. Special Prime

    Special Prime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  9. 面试官:this和super有什么区别?this能调用到父类吗?

    本文已收录<Java常见面试题>:https://gitee.com/mydb/interview this 和 super 都是 Java 中常见的关键字,虽然二者在很多情况下都可以被省 ...

  10. Java调用Azkaban的RestFul接口

    1.绕过ssl认证的工具类: import java.security.KeyManagementException; import java.security.NoSuchAlgorithmExce ...