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

1.注释(comments)

  • 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己编写的代码,但是当项目结构一旦复杂起来,我们就需要用到注释了!

  • 注释并不会被程序执行,是给我们自己写代码的人看的,方便理解

  • 书写注释是一个非常好的习惯

  • Java中注释有三种:

    • 单行注释(Line comment)
    • 多行注释(block comment)
    • 文档注释(JavaDoc)
  • 找好看的注释:搜索有趣的代码注释

  • 三种注释的代码

    • 单行注释:只能注释一行,//

      1. public class Hello {
      2. public static void main(String[] args) {
      3. //单行注释
      4. //输出hello一句话!
      5. System.out.println("hello");
      6. }
      7. }
    • 多行注释:可以注释一段文字,/* */

      1. public class Hello {
      2. public static void main(String[] args) {
      3. //单行注释
      4. //输出hello一句话!
      5. //多行注释
      6. /*
      7. 这是多行注释
      8. 这是多行注释
      9. 这是多行注释
      10. */
      11. System.out.println("hello");
    • JavaDoc:文档注释,/** */

      1. public class Hello {
      2. public static void main(String[] args) {
      3. //文档注释
      4. /**
      5. * @descroption hello
      6. * @Author zhang
      7. */
      8. System.out.println("hello");
      9. }
      10. }

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 “(可以有多个字符)

    • 判断数值类型大小

    • 八大基本类型代码:

      1. public class Demo2 {
      2. //八大基本类型
      3. //整数
      4. byte b1 = 10;
      5. short b2 = 100;
      6. int b3 = 1000;
      7. long b4 = 1000000L;//Long 类型要在后面加一个L,以示区分与上面不同。
      8. //浮点数
      9. float c1 = 1.1665F;//float 类型要在后面加一个F,以示区分与double不同。
      10. double c2 = 1.45466456;
      11. //字符类型
      12. char d1 = 'A';//只能写一个字或一个字符
      13. //String不是基本类型,属于引用类型
      14. String e1 = "zhang";//可以写多个字符
      15. //boolean:布尔值,其值只有true与false
      16. boolean f1 = true;
      17. }
  • 引用类型(reference type):除了基本数据类型,都是引用类型!

3.变量

  • 变量是什么:就是可以变化的量

  • java是一种强类型语言,每个变量都必须声明其类型

  • Java变量是程序中最基本的存储单元,其3要素包括:变量名、类型变量和、作用域

    1. type varName = value
    2. //数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型的变量!
  • 注意事项:

    • 每个变量都有类型,类型可以是基本数据类型,也可以是引用类型(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是强类型语言,所以要进行某些运算时,需要用到类型转换。
  1. 低---------------------------------->高
  2. byteshortchar->int-->long-->float-->double
  • 小数优先级大于整数
  • 运算中,不同类型的数据先转换为同一类型,然后在进行运算
  • 高转低需要强制转换,低转高不需要
  1. 强制类型转换:
  2. 高-----低 int-----byte
  3. 自动转换:
  4. 低------高 int-------double
  • 强制类型转换(括号里面加上转换类型)【格式:(类型)变量名】
  1. public class Demo9 {
  2. public static void main(String[] args) {
  3. int s1 = 128;
  4. byte s2 = (byte)s1;//内存溢出
  5. System.out.println(s2);
  6. }
  7. }
  8. 结果为:
  9. -128
  • 自动类型转换(隐式类型转换)
  1. public class Demo10 {
  2. public static void main(String[] args) {
  3. int s1 = 128;
  4. double s2 = s1;
  5. System.out.println(s2);
  6. }
  7. }
  8. 结果为:
  9. 128.0
  • 常见错误

    • 1.转换的结果为负数,原因为超出byte的最大正范围,避免内存溢出
  1. public class Demo9 {
  2. public static void main(String[] args) {
  3. int s1 = 128;
  4. byte s2 = (byte)s1;//内存溢出
  5. System.out.println(s2);
  6. }
  7. }
  8. 结果为:
  9. -128
    • 2.不能对boolean值进行转换,boolean是按位来计算大写的,而其他的数据类型单位为字节!!!

    • 3.不能把对象类型转换为不相干的类型(人不能转换为一本书)

    • 4.在把高容量转换为低容量的时候,强制转换

    • 转换的时候可能存在内存溢出,或者精度问题!(浮点数转int时,例如23.7变为23、-4.6变为-4,丢失精度)

    • char类型

      1. public class Demo11 {
      2. public static void main(String[] args) {
      3. //字符转换
      4. char s1 = 'a';
      5. int s2 = s1 +1;
      6. System.out.println(s2);//自动转换
      7. System.out.println((char) s2);//强制转换
      8. }
      9. }
      10. 结果为
      11. 98
      12. b
    • 操作比较大的数的时候,注意溢出问题,JDK7新特性,数字之间可以用下划线分割

      1. public class Demo12 {
      2. public static void main(String[] args) {
      3. //数字比较大的时候,注意溢出问题
      4. //JDK7新特性,数字可以用下划线分割表示
      5. int s1 = 1_0000_0000;
      6. int s2 = 100;
      7. int s3 = s1 * s2;//计算时溢出了
      8. long s4 = s1 * s2;//计算时按默认的int计算,转换为long类型之前就已经错误了
      9. System.out.println(s3);
      10. System.out.println(s4);
      11. }
      12. }
      13. 结果为:
      14. 451611456564151
      15. 451611456564151
    • 解决上面问题

      1. public class Demo12 {
      2. public static void main(String[] args) {
      3. //数字比较大的时候,注意溢出问题
      4. //JDK7新特性,数字可以用下划线分割表示
      5. int s1 = 1_0000_0000;
      6. int s2 = 100;
      7. int s3 = s1 * s2;//计算时溢出了
      8. long s4 = s1 * s2;//计算时按默认的int计算,转换为long类型之前就已经错误了
      9. long s5 = s1 * (long)s2;//计算时,先将s2从int转换为long在进行计算,结果就不会出现问题
      10. System.out.println(s3);
      11. System.out.println(s4);
      12. System.out.println(s5);
      13. }
      14. }

四.变量、常量

1.变量

  • 变量是什么:就是可以变化的量

  • java是一种强类型语言,每个变量都必须声明其类型

  • Java变量是程序中最基本的存储单元,其3要素包括:变量名、类型变量和、作用域

    1. type varName = value
    2. //数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型的变量!
  • 注意事项:

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

2.变量作用域

  • 类变量

  • 实例变量

  • 局部变量

    1. public class Demo13 {
    2. //类变量
    3. static int s1 = 10;//类变量必须要以static修饰
    4. //实例变量
    5. int s2 = 123;//没有static修饰为实例变量
    6. //main方法
    7. public static void main(String[] args) {
    8. //局部变量
    9. int s3 = 4546;//定义在方法里的变量,局部变量
    10. }
    11. }
  • 详解变量

  1. public class Demo14 {
  2. //类变量
  3. static int s3 = 464;
  4. static {
  5. //代码块,定义属性,在类加载的时候就加载了
  6. }
  7. //实例变量:从属于对象(当前这个类)
  8. //如果不自行初始化,有默认值
  9. //基本数据类型:整数默认值为:0,浮点数为:0.0,字符为:U0000(不显示),boolean为:false
  10. //除了基本数据类型,其余的默认值为null
  11. int age;
  12. String name;
  13. char address;
  14. double cat;
  15. boolean pet;
  16. //main方法
  17. public static void main(String[] args) {
  18. //局部变量:在当前方法有效,作用域为当前main方法
  19. //必须声明和初始值
  20. int s1 = 11;
  21. System.out.println(s1);
  22. //实例变量的调用
  23. Demo14 s2 = new Demo14();
  24. System.out.println(s2.age);
  25. System.out.println(s2.name);
  26. System.out.println(s2.cat);
  27. System.out.println(s2.address);
  28. System.out.println(s2.pet);
  29. //类变量
  30. System.out.println(s3);//可以直接调用
  31. }
  32. //add方法
  33. public void add(){
  34. }
  35. }
  36. 结果为:
  37. 11
  38. 0
  39. null
  40. 0.0
  41. //char的默认值
  42. false

3.常量

  • 常量(constant):初始化(initialize)后不能在改变值!!不会改动的值。
  • 所谓的常量可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被修改
  • 格式:final 常量名 = 值;final double PI = 3.1415926,变量名默认大写
  • 常量名一般使用1大写字符!!
  • 修饰符,不存在先后顺序
  1. public class Demo15 {
  2. static public int S = 14;
  3. public static void main(String[] args) {
  4. System.out.println(S);
  5. }
  6. }
  7. 输出结果为:
  8. 14

4.变量的命名规范

  • 所有的变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:timeLate
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Demo,Hello
  • 方法名:首字母小写和驼峰原则:add()、run()

五.运算符

  • 运算符

  • cast:转换
  • 自增、自减,一元运算符++,--
  1. public class Demo1 {
  2. public static void main(String[] args) {
  3. //自增自减,++ --
  4. int s1 = 2;
  5. int s2 = s1++;//先赋值再加
  6. int s3 = ++s1;//先加后赋值
  7. System.out.println(s1);
  8. System.out.println(s2);
  9. System.out.println(s3);
  10. }
  11. }
  12. 结果为:
  13. 4
  14. 2
  15. 4
  • 逻辑运算
  1. public class Demo2 {
  2. public static void main(String[] args) {
  3. //逻辑运算
  4. //短路运算
  5. int s1 = 6;
  6. boolean s2 = (s1<5)&&(s1++<5);//前面为false,后面的s1++就不会执行!!
  7. System.out.println(s2);
  8. System.out.println(s1);
  9. }
  10. }
  11. 结果为:
  12. false
  13. 6
  • 位运算
  1. public class Demo3 {
  2. public static void main(String[] args) {
  3. //位运算 0 1
  4. /*
  5. A =0011 1100
  6. B =0000 1101
  7. A&B:0000 1100 两者都为1,才为1
  8. A|B:0011 1101 两者只要有一个为1,就为1
  9. A^B(异或);0011 0001 两个数字一样为0,不同为1
  10. ~B:1111 0010 取反
  11. 2*8 = 16 2*2*2*2
  12. << 左移
  13. >> 右移
  14. 0000 0001 1
  15. 0001 0000 16
  16. */
  17. System.out.println(2<<3);//上面的例子
  18. System.out.println(256>>2);
  19. System.out.println(256>>>2);//与>>结果一样
  20. }
  21. }
  22. 结果为:
  23. 16
  24. 64
  25. 64
  • 三元运算符
  1. public class Demo4 {
  2. public static void main(String[] args) {
  3. //三元运算符
  4. //x(语句) ? y : s
  5. //如果x==true,则返回y,否则结果为s
  6. int s1 = 1;
  7. int s2 = 1<2 ? 10 : 5;
  8. System.out.println(s2);
  9. }
  10. }
  11. 结果为:
  12. 10
  • 优先级:()优先级高,建议多使用!!!

六.包机制、javaDoc

1.包

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
  • 包语句的格式为:package pkg1;
  1. package java.lang
  • 一般利用公司域名倒置作为包名;www.baidu.com com.baidu.www
  • 为了能够使用某一个包的成员,我们需要在Java程序里面导入该包,使用“import”语句即可完成此功能!
  • import package
  1. import base.Demo14;
  2. import base.* //导入全部 *表示通配符
  • 单词:refactor 重构

2.JavaDoc

  • JavaDoc命令是用来声称自己的API文档的
  • 可以加在类上,也可以加在方法上(自动生成一些东西)
  1. package operator;
  2. /**
  3. * @author zhang
  4. * @version 1.0
  5. */
  6. public class Demo4 {
  7. String name;
  8. /**
  9. *
  10. * @param args
  11. * @throws Exception
  12. */
  13. public static void main(String[] args) throws Exception{
  14. //三元运算符
  15. //x(语句) ? y : s
  16. //如果x==true,则返回y,否则结果为s
  17. int s1 = 1;
  18. int s2 = 1<2 ? 10 : 5;
  19. System.out.println(s2);
  20. }
  21. }
  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指明最早使用的JDK版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
  • 生成JavaDoc文档

      1. javadoc -encoding UTF-8 -charset UTF-8 Demo4.java
    • 生成文档

  • IDEA生成帮助文档

    1. zh_CN //生成中文文档
    2. -encoding UTF-8 -charset UTF-8 //设置编码集

生成JavaDoc帮助文档!

Java基础语法(语法、位运算、JavaDoc等)的更多相关文章

  1. JAVA基础1——字节&位运算

    占用字节数 & 取值范围 Java一共有8种基本数据类型(原始数据类型): 类型 存储要求 范围(包含) 默认值 包装类 int 4字节(32位) -2^31~ 2^31-1 0 Intege ...

  2. JAVA 基础基本语法---常量与变量

    JAVA 基础基本语法---常量与变量 语法:计算机能够识别的语言的规则: 0. 基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hel ...

  3. 二、JAVA基础、语法

    第二节:JAVA基础.语法 1.修饰符.变量:    Java中主要有如下几种类型的变量    局部变量                                                 ...

  4. Java基础概念语法

    Java基础概念语法 注释 单行注释 //行注释说明 多行注释 /* 多行注释说明 */ 文档注释 /** *@author 程序的作者 *@version 源文件的版本 *@param 方法的参数说 ...

  5. Java基础(1) - 语法 & 概念

    Java基础语法 基础 1. Java对大小写敏感 2. Java注释 //单行注释 这是一行注释 /* 这里是多行 注释 */ /** 这里是文档注释 @author 0o晓月メ */ 3. 访问修 ...

  6. 黑马程序员——JAVA基础之语法、命名规则

    ------- android培训.java培训.期待与您交流! ---------- 1.java语言组成:关键字,标识符,注释,常量和变量,运算符,语句,函数,数组. 2.java关键字:被Jav ...

  7. java基础入门-语法(1)

    因为平时用到一些java的项目,比如ElasticSearch,zookeeper等,有时也想看看里面怎么实现的,或者看到别人分析原理时候会用到java源码, 自己也想跟着学一下,最起码能看懂别人的分 ...

  8. Java基础东西(按位操作运算)

    http://aokunsang.iteye.com/blog/615658 前奏:   昨天一哥们问我Java位移你会吗,我说不会,想想位移这么麻烦,一般有位移的Java代码一律不看,有几个人会啊, ...

  9. JAVA程序开发按位运算的记录

    忘记在哪里看到一个面试题:把int a,b的值互换,不能使用临时变量.刚开始完全懵逼,脑子里面全是浆糊,不知道如何下手.查看答案后猛地一惊,心想居然还有这种操作,真是叹为观止,真的感觉自己的基础是如此 ...

随机推荐

  1. 理解Flink中的Task和SUBTASK

    1.概念 Task(任务):Task是一个阶段多个功能相同的subTask 的集合,类似于Spark中的TaskSet. subTask(子任务):subTask是Flink中任务最小执行单元,是一个 ...

  2. Spring笔记(2)

    一.AOP简介 1.概念: 面向切面编程(Aspect-Oriented Programming),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善. ...

  3. VS dll 引用依赖

    在公司实习过程中,经常遇到三个问题: 开发环境 dll引用依赖 dll版本控制 一般公司都会配置开发/测试/Lab/线上四个环境,之后不管时开发什么项目,都与环境分不开边.这个和dll版本控制暂且记下 ...

  4. Jenkins(6)- 新建用户

    如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 进入用户管理 点击新建用户 填写新 ...

  5. SpringBoot-初见

    目录 简单介绍 什么是SpingBoot? 微服务 单体应用架构 微服务架构 怎么构建微服务 第一个SpringBoot程序 官方网站快速构建 IDEA 代码 自动装配(要点) pom.xml 启动器 ...

  6. Prism+WPF使用DependencyInjection实现AutoMapper的依赖注入功能

    前言 在使用PRISM+WPF开发项目的过程中,需要使用AutoMapper实现对象-对象的映射功能.无奈PRISM没有相关对AutoMapper相关的类库,于是转换一下思想,在nuget 中存在有关 ...

  7. Object.keys( )与 for in 区别

    for in 一般用于对象的遍历: let obj = { a:1, b:2, } for(let key in obj){ console.log(key) } // a // b Object.k ...

  8. [第一篇]——Docker 教程之Spring Cloud直播商城 b2b2c电子商务技术总结

    Docker 教程 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然 ...

  9. python中字典按键、值进行排序

    看到排序,就不禁想起python中的sort和sorted sort是列表中的方法,用于对列表进行排序(改变的是原列表,不返回新列表) 用法: list.sort(key=None,reverse=T ...

  10. HDU - 2544最短路 (dijkstra算法)

    HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...