文章目录

  • 一.注释、标识符、关键字
    • 1.注释
    • 2.标识符
    • 3.关键字
  • 二.数据类型
    • 1.强类型语言和弱类型语言
    • 2.Java的数据类型
  • 三.类型转换
  • 四.变量、常量
    • 1.变量
    • 2.常量
  • 五.运算符
    • 算术运算符(二元运算符):
    • 自增自减运算符:
    • 逻辑运算符:
    • 位运算:
    • 扩展赋值运算符:
    • 三元运算符:
  • 六.包机制、JavaDoc
    • 1.包机制
    • 2.JavaDoc

一.注释、标识符、关键字

1.注释

注释是对程序语言的说明,有助于开发者和用户之间的交流,方便理解程序。注释不是编程语句,并不会被执行

  1. 单行注释 //
  2. 多行注释 /* */
  3. 文档注释 /** */

2.标识符

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

标识符的构成规则:

  • 标识符由数字(0-9)和字母(A-Z 和 a-z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
  • 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。

标识符注意点:

  • 标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为变量名或者方法名。
  • Java区分大小写,因此 Fashi 和 fashi 是两个不同的标识符。
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音。
  • 合法标识符举例:age、 $salary、 _value、 __1_value
  • 非法标识符举例:123abc、 -salary、 #abc

3.关键字

Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。

二.数据类型

1.强类型语言和弱类型语言

强类型语言:

  • 强类型语言是一种强制类型定义的语言,一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了。
  • 强类型语言包括Java、.net 、Python、C++等语言。
  • 要求变量的使用要严格符合规定,所有变量都必须先定义以后才能使用;安全性高,但速度慢。

举个例子:定义了一个整数,如果不进行强制的类型转换,则不可以将该整数转化为字符串。

弱类型语言:

  • 弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。
  • 弱类型语言包括vb 、PHP、javascript等语言。

2.Java的数据类型

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

  • 基本类型(primitive type),有8大基本类型,此外都是引用类型。
  • 引用类型(reference type)
        //八大基本数据类型//整数int num1 = 10; //最常用,不能超过21亿(2^31-1)byte num2 = 20; //范围:-128~127short num3 = 30;long num4 = 30L; //long类型数字后面要加个L(尽量用大写,小写l容易与1搞混)//浮点数float num5 = 50.1F; //float类型数字后面要加个Fdouble num6 = 3.141592653589793238;//字符char name = '中';//字符是代表一个字//字符串String不是关键字,是类//String name = "法师";//布尔值:是非,只有true和false两个值boolean flag = true;boolean flag1 = false;

扩展:

什么是字节?

  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。
  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
  • 1B(byte,字节) = 8bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号。
  • 1bit表示1位,1Byte表示一个字节
  • 1B=8b,1024B=1KB,1024KB=1M,1024M=1G

整数拓展:

        //进制扩展: 二进制0b   八进制0    十进制     十六进制0xint i = 10;//10int i2 = 010; //八进制0  8int i3 = 0x10; //十六进制0x  16  0~9 A~F  0x11=17//浮点数扩展://面试题:银行业务怎么表示钱? BigDecimal(数学工具类)//float double 浮点数 有限 离散,舍入误差//无法精确地表示一些数字,结果只能是大约数(接近但不等于)//最好避免使用浮点数进行比较float f = 0.1f;   //0.1double d = 1.0/10;  //0.1System.out.println(f==d); //falsefloat d1 = 23131313131f;float d2 = d1+1;System.out.println(d1==d2); //true//字符扩展:所有字符的本质还是数字char c1 = 'a';char c2 = '中';System.out.println(c1);     //aSystem.out.println((int)c1);//强制类型转换,97System.out.println(c2);       //中System.out.println((int)c2);//强制类型转换,20013//编码 Unicode表 占2字节 最多可以表示65536字符(0~65536) (97=a,65=A)//U000~UFFFF 十六进制(u0061=a,相当于十进制的97)char c3='\u0061';//'\'是转义字符System.out.println(c3);  //a //转义字符// \t  制表符  \n换行 ...System.out.println("Hello\nWorld");//布尔值扩展boolean flag = true;if(flag==true){} if(flag){}    //默认判断flag是否等于true//字符串//引用类型比较的是地址值一样,基本类型比较的值是否一样//比较内存地址是否一致String s=new String("Fashi");String s1=new String("Fashi");System.out.println(s==s1);//false//在字符串常量池中进行比较String s2="Fashi";String s3="Fashi";System.out.println(s2==s3);//true

进制转换

三.类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
  • 运算中,不同类型的数据先转换为同一类型,然后进行运算。
  • 容量从低到高,会自动转换;容量从高到低,需要强制类型转换。
        int i = 128;//强制转换:(类型)变量名  例如:(byte)i   强制转换要避免内存溢出//byte范围-128~127byte b = (byte)i; //内存溢出  高-->低double d =i; //自动转换  低-->高System.out.println(i); //128System.out.println(b); //-128System.out.println(d); //128.0/*注意点:1.不能对布尔值进行转换2.不能把对象类型转换为不相干的类型3.在把高容器转换到低容量的时候,需要强制转换4.转换的时候可能存在内存溢出,或者精度问题* */System.out.println((int)23.7); //23 丢失精度System.out.println((int)-45.89f); //-45 丢失精度char c = 'a';int f = c+1;System.out.println(f); //98System.out.println((char)f); //b//当操作比较大的数值时,注意溢出问题//JDK7新特性,数字之间可以用下划线分割int money = 10_0000_0000; //下划线不会被打印出来System.out.println(money); //1000000000int years = 20;int total = money*years;//-1474836480 计算的时候溢出了long total2 = money*years; //-1474836480 结果默认是int,转换前就存在溢出问题//解决方法long total3 = money*(long)years; //先把其中一个数转为LongSystem.out.println(total3); //20000000000

四.变量、常量

1.变量

Java变量的定义:在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。

  • 变量是什么:就是可以变化的量。可以通过变量来操作一些内存中的数据,变量本质上是代表一块空间,位置是确定,但空间内的值是不确定的。
  • Java是一种强类型语言,每个变量都必须声明其类型。
  • Java变量是程序中最基本的存储单元,要素包括变量名,变量类型和作用域。

语法:

     type varName [=value][{,varName[=value]}];//数据类型 变量名 = 值;可以使用逗号隔开同多个类型的变量。int a=1;String name="fashi";

注意事项:

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

变量作用域

  • 类变量
  • 实例变量
  • 局部变量
     public class Variable{//类变量 static 从属于类,在类中可以直接调用。可以直接通过类名调用//所有方法可以调用静态变量,非静态方法可以调用静态变量和非静态变量static int  allClicks = 0; //实例变量:从属于对象,不用初始化;如若没有进行初始化值,则数值为这个类型的默认值  整数0 浮点数0.0 字符u0000 布尔值false  //除了基本类型,其他的(引用类型)默认值都是null//使用方式:需要实例化一个对象 //Variable va=new Variable();  va.str;  String str = "hello world"; public void add(){//局部变量:只能在方法中使用,使用前必须声明和初始化值int i=1;}}

2.常量

  • 常量:初始化后不能再改变的值,不会变动的值。(就是在程序中固定不变的值,是不能改变的数据)
  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
  • 常量名一般使用大写字符。
     //定义常量,需要加上final修饰final 常量名 = 值;final double PI = 3.14;//修饰符:不存在先后顺序static final int A=97; //static可以写final后面

变量的命名规范:

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

五.运算符

算术运算符(二元运算符):

        int a=10;int b=20;int c=21;System.out.println(a+b); //30System.out.println(a-b); //-10System.out.println(a*b); //200//System.out.println(a/b); //0 ?  10/20=0.5 整数四舍五入System.out.println((double)a/b); //0.5System.out.println(c%a);//取余(模)  21/10=2..1 余数为1long a1=123123123123123L;int b1=123;short c1=10;byte d1=8;//不同的数据类型运算会自动转换为式子中容量大(最高位)的数据类型(赋值同理)//byte、short、char用运算符运算后会自动转型为int类型System.out.println(a1+b1+c1+d1);//123123123123264 Long System.out.println(b1+c1+d1);//141 intSystem.out.println(c1+d1);//18 int

自增自减运算符:

        // ++自增 --自减 一元运算符int a = 3;int b = a++; //a=a+1 先赋值,再自增int c = ++a; //a=a+1 先自增,再赋值System.out.println(a); //5System.out.println(b); //3System.out.println(c); //5//扩展:Math类//幂运算 2^3 2*2*2=8double pow = Math.pow(2,3); // (底数,指数)System.out.println(pow); //8.0//扩展:i=5 s=(i++)+(++i)+(i--)+(--i) s=?int i=5;int s=(i++)+(++i)+(i--)+(--i);//5+7+7+5System.out.println(s); //24

逻辑运算符:

        // 与(and) 或(or) 非(取反)boolean a = true;boolean b = false;System.out.println(a&&b); // false 逻辑与运算:两个变量都为真,结果为trueSystem.out.println(a||b); // true  逻辑或运算:两个变量有一个为真,结果为trueSystem.out.println(!(a&&b)); // true  逻辑取反运算:如果为真,则变为假;如果为假,则变为真//短路运算int c=5;boolean d = (c<4)&&(c++<4); //第一个值为false,后面就不进行判定了System.out.println(d); //falseSystem.out.println(c); //5 c++未执行

位运算:

       /*A = 0011 1100B = 0000 1101A&B = 0000 1100 按位与(两个都为1,则为1,否则为0)A|B = 0011 1101 按位或(两个都为0,则为0,否则为1)A^B = 0011 0001 异或(两个相同,则为0,否则为1)~B  =  1111 0010 非(取反)面试题:2*8=16 2*2*2*2 怎么算最快? 2<<3 效率极高<< 左移  *2>> 右移  /20000 0000  00000 0001  10000 0010  20000 0011  30000 0100  40000 1000  80001 0000  16*/System.out.println(2<<3); // 16

扩展赋值运算符:

        int a = 10;int b = 20;a+=b; // a = a+ba-=b; // a = a-bSystem.out.println(a); //10//字符串连接符 +//在加号运算符两侧,只要有一方出现了String,就会把另外一方转化为String类型,然后拼接 System.out.println(""+a+b); //1020System.out.println(a+b+""); //30 先进行运算,再转为String拼接System.out.println(a+b+"str"); //30str

三元运算符:

        // x ? y : z//如果x==true,则结果为y,否则为zint score = 80;String type = score<60?"及格":"不及格";System.out.println(type); //及格

运算符的优先级

六.包机制、JavaDoc

1.包机制

  • 为了更好地组织类,Java提供了包机制,由于区分类名的命名空间(包的本质就是文件夹)。
  • 包的语法格式:
package pkg1[.pkg2[.pkg3...]]
  • 一般利用公司域名倒置作为包名; com.baidu.www
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"完成此功能
import package1[.package2...].(classname|*);//通配符* 导入这个包下所以的类

参考:阿里巴巴开发手册

2.JavaDoc

  • javadoc命令是用来生成自己API文档的
  • 参数信息
    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
/*** @author Fashi* @version 1.0* @since 1.8*/
public class Demo6 {/*** @author Fashi* @param name* @return* @throws Exception*/public String test(String name) throws Exception{return name;}
}

生成与该类有关的API文档:

  1. 在java文件所在的目录打开cmd
  2. 输入 javadoc -encoding UTF-8 -charset UTF-8 Demo6.java(javadoc+参数+java文件)

使用IDEA生成javadoc文档

Java基础学习(2)---Java基础语法相关推荐

  1. java catch空指针异常处理_Java基础学习:java文件空指针异常处理

    在Java编程中,我们或多或少地会遇到一些程序异常的情况,为了不影响程序的正常执行,我们需要在程序发生异常的情况下,进行一些操作来防止造成更大的损失.例如在我们平时的除法运算中,被除数是不能为0的,如 ...

  2. Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型、符号、运算符、数组Array总结之详细攻略

    Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型.符号.运算符.数组Array总结之详细攻略 目录 Java语言编程的基础知识之Java的变量与数据类型.符号.运算符.数组总 ...

  3. Java编程语言学习:Java语言基础案例(如求两门课分数之差、三门课平均分、关系运算符作比较)之详细攻略

    Java编程语言学习:Java语言基础案例(如求两门课分数之差.三门课平均分.关系运算符作比较)之详细攻略 目录 Java语言基础案例 1.求两门课分数之差.三门课平均分: 2.关系运算符作比较

  4. 医用计算机基础学习心得,计算机基础学习心得.doc

    计算机基础学习心得 计算机基础学习心得一:计算机基础学习心得 当今社会,到处充满机会与挑战.知识是我们面对这一切的筹码,而计算机知识则更为重要.如何在本科函授这样一种形式下,学好计算机课程,这是摆在我 ...

  5. C基础学习笔记——01-C基础第02天(用户权限、VI操作、Linux服务器搭建)

    在学习C基础总结了笔记,并分享出来.有问题请及时联系博主:Alliswell_WP,转载请注明出处. 01-C基础第02天(用户权限.VI操作.Linux服务器搭建) 打开终端:ctrl+alt+t ...

  6. C的回归基础学习1——真的基础

    C的回归基础学习1--真的基础 前言 自从高二noip(2017)惨败后便没有在认真的碰C++了,以至于荒废至此.本身打算在国庆复习,但是奈何的编写网页的任务太爆肝了,假期结束还得补作业.直到现在才开 ...

  7. Java工程师学习路线(基础知识)(待完善)

    Java基础 一.Java基本 1. Java基础概念和常识 java语言特点 JVM JDK和JRE (1)JVM (2)JDK和JRE Java和C++的区别 什么是 Java 程序的主类 应用程 ...

  8. Java基础学习(11)---Java注解和反射

    文章目录 一.注解概述 二.内置注解 三.元注解 四.自定义注解 五.反射概述 ★ 静态语言 VS 动态语言 反射机制 Java反射机制研究及应用 Java反射优点和缺点 六.Class类 获取Cla ...

  9. 最适合Java初学者学习的Java零基础入门教程

    各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java. 因此,也是吸引了不少年轻人投入到Java的学习之中. 所以,今天 ...

最新文章

  1. 蝴蝶扇了一下翅膀,混沌就诞生了
  2. 任务调度利器:Celery
  3. LogViewer超大文本浏览工具
  4. 【spring cloud zookeeper】KeeperErrorCode = Unimplemented for
  5. python slice函数画高维图_六维图见过么?Python 画出来了
  6. 51单片机auxr寄存器_MCS-51单片机有几个工作寄存器
  7. python中grid函数_python tkinter中的grid布局是什么?
  8. RTMP中FLV流到标准h264、aac的转换
  9. ios-kvc\kvo 原理
  10. 苹果发布第四财季财报 iPhone 13上市初期表现如何将见分晓
  11. GitHub:Python 强化学习实用指南
  12. 16.卷1(套接字联网API)---非阻塞式IO
  13. Android反编译:使用dex2jar查看dex文件
  14. SQL Server常用函数整理
  15. 5.验证面试高频问题整理(附答案)
  16. 使用文本排版大师(TxtEdit/TEditer)在记事本文件中绘制表格。
  17. 庖丁解牛linux内核,庖丁解牛Linux网络核心
  18. 无线射频专题《射频基础,射频特征,波长,频率,振幅,相位》
  19. JavaScript高级程序设计学习笔记(三)
  20. 群聊太多?三步教你用 Python 自动监听转发群消息!

热门文章

  1. PS弧形边缘的去黑色背景色
  2. 【FPGA】Chipscope的基本使用
  3. Spring AOP 自定义注解记录操作日志
  4. linux无线8179,编译安装0bda 8179无线网卡
  5. CentOS 安装声卡驱动
  6. oracle中before,oracle触发器before和after数据区别
  7. 一个简单的问卷调查服务端设计
  8. 微信隐藏功能系列:微信笔记怎么制作?微信备忘录?计划表?2步完成
  9. 分分钟拯救监控知识体系
  10. MAC新手教程:十分钟轻松熟悉Mac系统