Java基础语法(语法、位运算、JavaDoc等)
一.注释、标识符、关键字
1.注释(comments)
平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己编写的代码,但是当项目结构一旦复杂起来,我们就需要用到注释了!
注释并不会被程序执行,是给我们自己写代码的人看的,方便理解
书写注释是一个非常好的习惯
Java中注释有三种:
- 单行注释(Line comment)
- 多行注释(block comment)
- 文档注释(JavaDoc)
找好看的注释:搜索有趣的代码注释
三种注释的代码
单行注释:只能注释一行,//
public class Hello {
public static void main(String[] args) {
//单行注释
//输出hello一句话!
System.out.println("hello");
}
}
多行注释:可以注释一段文字,/* */
public class Hello {
public static void main(String[] args) {
//单行注释
//输出hello一句话!
//多行注释
/*
这是多行注释
这是多行注释
这是多行注释
*/
System.out.println("hello");JavaDoc:文档注释,/** */
public class Hello {
public static void main(String[] args) {
//文档注释
/**
* @descroption hello
* @Author zhang
*/
System.out.println("hello");
}
}
comments:注释
Annotations:注解
Bold:粗体
italic:斜体
description:描述
Author:作者
2.标识符
- Java里面的关键字
- Java所有的组成成分都需要名字,类名、变量名以及方法名都被称作标识符。(每个人都有自己的名字,程序也是如此,作为程序员,我们就是上帝造物主,我们要给自己创造的程序命名,这也体现了程序来源于生活!)
- 标识符注意事项
- 所有的标识符首字符都应该以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者a-z)、美元符($)、下划线(_)或者数字的任意字符组合
- 不能使用关键字作为变量名或者方法名
- 标识符是大小写敏感的
- 合法标识符例子:age、$salary、_value、__1_value
- 不合法标识符例子:123abc,-salary、#abc
- 可以使用中文命名,但是一般不推荐怎样去使用,也不建议使用拼音,原则上命名要见名知意
- 文件名与类名保持一致,并且类名首字母大写(默认规范)
二.数据类型
1.语言类型(安全性与性能)
- 强类型语言:要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用(安全性高,性能低)
- 弱类型语言:要求变量的使用不需要严格符合规定,所有的变量不需要先定义后才能使用(安全性低,性能高)
2.Java的数据类型分为两大类
基本类型(Primitive type)
单引号与双引号:‘ 中 ’(只能为一个字符或一个字,‘中’或者‘A’等);” zahng “(可以有多个字符)
判断数值类型大小
八大基本类型代码:
public class Demo2 {
//八大基本类型
//整数
byte b1 = 10;
short b2 = 100;
int b3 = 1000;
long b4 = 1000000L;//Long 类型要在后面加一个L,以示区分与上面不同。
//浮点数
float c1 = 1.1665F;//float 类型要在后面加一个F,以示区分与double不同。
double c2 = 1.45466456;
//字符类型
char d1 = 'A';//只能写一个字或一个字符
//String不是基本类型,属于引用类型
String e1 = "zhang";//可以写多个字符
//boolean:布尔值,其值只有true与false
boolean f1 = true;
}
引用类型(reference type):除了基本数据类型,都是引用类型!
3.变量
变量是什么:就是可以变化的量
java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其3要素包括:变量名、类型变量和、作用域
type varName = value
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型的变量!
注意事项:
- 每个变量都有类型,类型可以是基本数据类型,也可以是引用类型(String 是引用类型)
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号(;)结束
4.什么是字节
- 位(bit):是计算机内部数据存储的最小单位,11101110就是一个八位二进制数,习惯上用小写的b表示。
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
- 1B(byte,字节)= 8 bit(位),也就是说,如果用二进制表示的话,1字节=2的(8-1)次方 bit(位)
- 字符:是指计算机中使用的字母、数字、字、和字符
- 单位换算
- 1bit表示1位
- 1byte 表示1个字节 1B = 8b(二进制的8次方)【8-1的次方】
- 1024B = 1KB
- 1024KB = 1M
- 1024 M = 1G
- 电脑32位于64位的区别
- 向下兼容,64位的电脑既可以装64位操作系统也可以装32位操作系统,反之不行!
- 位数越高,电脑内存寻址越强,电脑运行速度越快
- 同时,64位电脑,最多可以支持128G内存,32位电脑,最多支持4G内存,所以如果你想加内存条,64位的理论上最多可以加到128G
三.类型转换
- 由于Java是强类型语言,所以要进行某些运算时,需要用到类型转换。
低---------------------------------->高
byte,short,char->int-->long-->float-->double
- 小数优先级大于整数
- 运算中,不同类型的数据先转换为同一类型,然后在进行运算
- 高转低需要强制转换,低转高不需要
强制类型转换:
高-----低 int-----byte
自动转换:
低------高 int-------double
- 强制类型转换(括号里面加上转换类型)【格式:(类型)变量名】
public class Demo9 {
public static void main(String[] args) {
int s1 = 128;
byte s2 = (byte)s1;//内存溢出
System.out.println(s2);
}
}
结果为:
-128
- 自动类型转换(隐式类型转换)
public class Demo10 {
public static void main(String[] args) {
int s1 = 128;
double s2 = s1;
System.out.println(s2);
}
}
结果为:
128.0
- 常见错误
- 1.转换的结果为负数,原因为超出byte的最大正范围,避免内存溢出
public class Demo9 {
public static void main(String[] args) {
int s1 = 128;
byte s2 = (byte)s1;//内存溢出
System.out.println(s2);
}
}
结果为:
-128
2.不能对boolean值进行转换,boolean是按位来计算大写的,而其他的数据类型单位为字节!!!
3.不能把对象类型转换为不相干的类型(人不能转换为一本书)
4.在把高容量转换为低容量的时候,强制转换
转换的时候可能存在内存溢出,或者精度问题!(浮点数转int时,例如23.7变为23、-4.6变为-4,丢失精度)
char类型
public class Demo11 {
public static void main(String[] args) {
//字符转换
char s1 = 'a';
int s2 = s1 +1;
System.out.println(s2);//自动转换
System.out.println((char) s2);//强制转换
}
}
结果为
98
b
操作比较大的数的时候,注意溢出问题,JDK7新特性,数字之间可以用下划线分割
public class Demo12 {
public static void main(String[] args) {
//数字比较大的时候,注意溢出问题
//JDK7新特性,数字可以用下划线分割表示
int s1 = 1_0000_0000;
int s2 = 100;
int s3 = s1 * s2;//计算时溢出了
long s4 = s1 * s2;//计算时按默认的int计算,转换为long类型之前就已经错误了 System.out.println(s3);
System.out.println(s4);
}
}
结果为:
451611456564151
451611456564151解决上面问题
public class Demo12 {
public static void main(String[] args) {
//数字比较大的时候,注意溢出问题
//JDK7新特性,数字可以用下划线分割表示
int s1 = 1_0000_0000;
int s2 = 100;
int s3 = s1 * s2;//计算时溢出了
long s4 = s1 * s2;//计算时按默认的int计算,转换为long类型之前就已经错误了
long s5 = s1 * (long)s2;//计算时,先将s2从int转换为long在进行计算,结果就不会出现问题
System.out.println(s3);
System.out.println(s4);
System.out.println(s5);
}
}
四.变量、常量
1.变量
变量是什么:就是可以变化的量
java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其3要素包括:变量名、类型变量和、作用域
type varName = value
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型的变量!
注意事项:
- 每个变量都有类型,类型可以是基本数据类型,也可以是引用类型(String 是引用类型)
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号(;)结束
2.变量作用域
类变量
实例变量
局部变量
public class Demo13 {
//类变量
static int s1 = 10;//类变量必须要以static修饰
//实例变量
int s2 = 123;//没有static修饰为实例变量
//main方法
public static void main(String[] args) {
//局部变量
int s3 = 4546;//定义在方法里的变量,局部变量
}
}详解变量
public class Demo14 {
//类变量
static int s3 = 464;
static {
//代码块,定义属性,在类加载的时候就加载了
}
//实例变量:从属于对象(当前这个类)
//如果不自行初始化,有默认值
//基本数据类型:整数默认值为:0,浮点数为:0.0,字符为:U0000(不显示),boolean为:false
//除了基本数据类型,其余的默认值为null
int age;
String name;
char address;
double cat;
boolean pet;
//main方法
public static void main(String[] args) {
//局部变量:在当前方法有效,作用域为当前main方法
//必须声明和初始值
int s1 = 11;
System.out.println(s1);
//实例变量的调用
Demo14 s2 = new Demo14();
System.out.println(s2.age);
System.out.println(s2.name);
System.out.println(s2.cat);
System.out.println(s2.address);
System.out.println(s2.pet);
//类变量
System.out.println(s3);//可以直接调用
}
//add方法
public void add(){
}
}
结果为:
11
0
null
0.0
//char的默认值
false
3.常量
- 常量(constant):初始化(initialize)后不能在改变值!!不会改动的值。
- 所谓的常量可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被修改
- 格式:final 常量名 = 值;final double PI = 3.1415926,变量名默认大写
- 常量名一般使用1大写字符!!
- 修饰符,不存在先后顺序
public class Demo15 {
static public int S = 14;
public static void main(String[] args) {
System.out.println(S);
}
}
输出结果为:
14
4.变量的命名规范
- 所有的变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:timeLate
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Demo,Hello
- 方法名:首字母小写和驼峰原则:add()、run()
五.运算符
- 运算符
- cast:转换
- 自增、自减,一元运算符++,--
public class Demo1 {
public static void main(String[] args) {
//自增自减,++ --
int s1 = 2;
int s2 = s1++;//先赋值再加
int s3 = ++s1;//先加后赋值
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}
结果为:
4
2
4
- 逻辑运算
public class Demo2 {
public static void main(String[] args) {
//逻辑运算
//短路运算
int s1 = 6;
boolean s2 = (s1<5)&&(s1++<5);//前面为false,后面的s1++就不会执行!!
System.out.println(s2);
System.out.println(s1);
}
}
结果为:
false
6
- 位运算
public class Demo3 {
public static void main(String[] args) {
//位运算 0 1
/*
A =0011 1100
B =0000 1101
A&B:0000 1100 两者都为1,才为1
A|B:0011 1101 两者只要有一个为1,就为1
A^B(异或);0011 0001 两个数字一样为0,不同为1
~B:1111 0010 取反
2*8 = 16 2*2*2*2
<< 左移
>> 右移
0000 0001 1
0001 0000 16
*/
System.out.println(2<<3);//上面的例子
System.out.println(256>>2);
System.out.println(256>>>2);//与>>结果一样
}
}
结果为:
16
64
64
- 三元运算符
public class Demo4 {
public static void main(String[] args) {
//三元运算符
//x(语句) ? y : s
//如果x==true,则返回y,否则结果为s
int s1 = 1;
int s2 = 1<2 ? 10 : 5;
System.out.println(s2);
}
}
结果为:
10
- 优先级:()优先级高,建议多使用!!!
六.包机制、javaDoc
1.包
- 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
- 包语句的格式为:package pkg1;
package java.lang
- 一般利用公司域名倒置作为包名;www.baidu.com com.baidu.www
- 为了能够使用某一个包的成员,我们需要在Java程序里面导入该包,使用“import”语句即可完成此功能!
- import package
import base.Demo14;
import base.* //导入全部 *表示通配符
- 单词:refactor 重构
2.JavaDoc
- JavaDoc命令是用来声称自己的API文档的
- 可以加在类上,也可以加在方法上(自动生成一些东西)
package operator;
/**
* @author zhang
* @version 1.0
*/
public class Demo4 {
String name;
/**
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
//三元运算符
//x(语句) ? y : s
//如果x==true,则返回y,否则结果为s
int s1 = 1;
int s2 = 1<2 ? 10 : 5;
System.out.println(s2);
}
}
参数信息
- @author 作者名
- @version 版本号
- @since 指明最早使用的JDK版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
生成JavaDoc文档
javadoc -encoding UTF-8 -charset UTF-8 Demo4.java
生成文档
IDEA生成帮助文档
-
zh_CN //生成中文文档
-encoding UTF-8 -charset UTF-8 //设置编码集
生成JavaDoc帮助文档!
Java基础语法(语法、位运算、JavaDoc等)的更多相关文章
- JAVA基础1——字节&位运算
占用字节数 & 取值范围 Java一共有8种基本数据类型(原始数据类型): 类型 存储要求 范围(包含) 默认值 包装类 int 4字节(32位) -2^31~ 2^31-1 0 Intege ...
- JAVA 基础基本语法---常量与变量
JAVA 基础基本语法---常量与变量 语法:计算机能够识别的语言的规则: 0. 基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hel ...
- 二、JAVA基础、语法
第二节:JAVA基础.语法 1.修饰符.变量: Java中主要有如下几种类型的变量 局部变量 ...
- Java基础概念语法
Java基础概念语法 注释 单行注释 //行注释说明 多行注释 /* 多行注释说明 */ 文档注释 /** *@author 程序的作者 *@version 源文件的版本 *@param 方法的参数说 ...
- Java基础(1) - 语法 & 概念
Java基础语法 基础 1. Java对大小写敏感 2. Java注释 //单行注释 这是一行注释 /* 这里是多行 注释 */ /** 这里是文档注释 @author 0o晓月メ */ 3. 访问修 ...
- 黑马程序员——JAVA基础之语法、命名规则
------- android培训.java培训.期待与您交流! ---------- 1.java语言组成:关键字,标识符,注释,常量和变量,运算符,语句,函数,数组. 2.java关键字:被Jav ...
- java基础入门-语法(1)
因为平时用到一些java的项目,比如ElasticSearch,zookeeper等,有时也想看看里面怎么实现的,或者看到别人分析原理时候会用到java源码, 自己也想跟着学一下,最起码能看懂别人的分 ...
- Java基础东西(按位操作运算)
http://aokunsang.iteye.com/blog/615658 前奏: 昨天一哥们问我Java位移你会吗,我说不会,想想位移这么麻烦,一般有位移的Java代码一律不看,有几个人会啊, ...
- JAVA程序开发按位运算的记录
忘记在哪里看到一个面试题:把int a,b的值互换,不能使用临时变量.刚开始完全懵逼,脑子里面全是浆糊,不知道如何下手.查看答案后猛地一惊,心想居然还有这种操作,真是叹为观止,真的感觉自己的基础是如此 ...
随机推荐
- 并发控制--context篇
目录 1. 前言 2 Context 实现原理 2.1 接口定义 2.1 cancelCtx 2.1.1 Done()接口实现 2.1.2 Err()接口实现 2.1.3 cancel()接口实现 2 ...
- Oracle存储过程锁表
存储过程: 解决方法如下: 1:查V$DB_OBJECT_CACHE SELECT * FROM V$DB_OBJECT_CACHE WHERE name='CRM_LASTCHGINFO_DAY' ...
- MySQL-存储引擎-MERGE
MERGE存储引擎是一组Myisam表的组合,这些Myisam表必须结构完全相同,MERGE表本身并没有数据,对MERGE类型的表可以进行查询.更新.删除操作,这些操作实际上是对内部的Myisam表进 ...
- Mybatis-plus<二>通用CRUD,分页
Mybatis-plus<二>通用CRUD,分页 与博客Mybatis-plus<一>为同一个Springboot项目. Demo GitHub下载地址:https://git ...
- elasticsearch支持大table格式数据的搜索
一.问题源起 数据情况 TableMeta, 保存table的元数据,通过fileId关联具体的GridFS文件: id name creator fileId 1 table1 mango f1 2 ...
- sed命令的使用
1.sed格式.理解 (1)找谁 干什么 (2)想找谁,就把谁保护起来 2.sed基本操作 操作文件oldboy.txt I am lizhenya teacher! I teach linux. ...
- shell脚本书写
#!/bin/bash #指定脚本默认使用的命令解释器 第1行 幻数 #!/usr/bin/python #!/bin/awk #!/bin/sed
- 掌握基于AOP事务管理
一.手动管理和半自动工厂模式 二.AOP事务管理 1.表达式中,第一个※是返回值所有类型,service包下一个点意思是service包下的类,两个点意思是service包下的类和其子包下的类也包含, ...
- FinallShell连接Centos虚拟机
1.虚拟机下输入ip addr查看网络状态,保证ens33下有ip 2.若没有IP的解决办法 方法一················· 1.输入 cd /etc/sysconfig/network-s ...
- python模块--pathlib
类/属性/方法 返回值 参数 说明 .Path() p 创建Path对象 path 路径 p.parent Path 返回上一级路径 p.parents iter 上一级路径, 上上级 ...