——每过一遍基础,都是一次提升!

太多遗忘了,慢慢补。。。

推一个Java学习教程--->b站搜:狂神说Java系列(排序完毕)

推荐原因:讲的不错,会涉及到底层,也会讲讲面试。

一、注释

主要掌握单行注释多行注释JavaDoc文档注释

谨记在心的两句话:

  • 书写注释是一个好习惯
  • 写代码必须注意规范
  1. /**
  2. * @author 我在吃大西瓜呢
  3. * (JavaDoc文档注释)
  4. */
  5. public class HelloWorld {
  6. public static void main(String[] args) {
  7. // 输出一个hello world (单行注释)
  8. /* 输出一个hello world (多行注释)*/
  9. System.out.println("Hello World!");
  10. }
  11. }

二、标识符和关键字

类名变量名方法名都被称为标识符

注意点:

  • 所有标识符必须以字母、美元符$、下划线_ 开始,首字符后随意,但为了规范,建议用好English
  • 不能使用关键字作为变量名或方法名
  • 标识符大小写敏感

关键字:(不认识不要紧,慢慢积累)

三、数据类型

Java是强类型语言,要求变量的使用要符合规定,所有变量必须先定义,后使用

因此,安全性高,但速率较低。鱼与熊掌不可兼得焉!

首先了解什么是字节?

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

一些转换关系:

  • 1 B = 8 b
  • 1024 B = 1 KB
  • 1024 KB = 1 M
  • 1024 M = 1 G
  • 1024 G = 1 TB

八大基本数据类型:

  1. public class Demo1 {
  2. public static void main(String[] args) {
  3. //八大基本数据类型
  4. //整数
  5. byte num1 = 10;
  6. short num2 = 500;
  7. int num3 = 6666; //常用
  8. long num4 = 999999999L; //long类型一般在数字后面加L
  9. //小数
  10. float num5 = 9.6F; //float类型一般在数字后面加F
  11. double num6 = 66.99;
  12. //字符
  13. char name = 'W';
  14. //字符串(引用类型)
  15. //String id = "我在吃大西瓜呢";
  16. //布尔值
  17. boolean flag1 = true;
  18. boolean flag2 = false;
  19. }
  20. }

相关拓展:

  1. public class Demo2 {
  2. public static void main(String[] args) {
  3. //整数拓展: 进制 二级制0b 十进制 八进制0 十六进制0x
  4. int i = 10;
  5. int i2 = 010;
  6. int i3 = 0x10;
  7. System.out.println(i); //10
  8. System.out.println(i2); //8
  9. System.out.println(i3); //16
  10. System.out.println("===============================================");
  11. //=================================================================
  12. //浮点数拓展: 问--->有关银行业务怎么表示?
  13. // 答--->BigDecimal数学工具类
  14. //因为float是有舍入误差
  15. //example1:
  16. float f = 0.1f; //0.1
  17. double d = 1.0/10; //0.1
  18. System.out.println(f==d); //false
  19. //example2:
  20. float d1 = 12345678998765f;
  21. float d2 = d1+1;
  22. System.out.println(d1==d2); //true
  23. System.out.println("===============================================");
  24. //=================================================================
  25. //字符拓展 强制转换
  26. //所有的字符本质还是数字 参考Unicode编码表
  27. char c1 = 'a';
  28. char c2 = '我';
  29. System.out.println(c1);
  30. System.out.println((int)c1); //97
  31. System.out.println(c2);
  32. System.out.println((int)c2); //25105
  33. char c3 = '\u0061';
  34. System.out.println(c3); //a
  35. //转义字符 (百度一下!)
  36. // \t 制表符
  37. // \n 换行
  38. System.out.println("===============================================");
  39. //=================================================================
  40. //布尔值拓展
  41. boolean flag = true;
  42. //以下表示方法一样 less is more!
  43. //if(flag==true){}
  44. //if (flag){}
  45. }
  46. }

四、类型转换

Java是强类型语言,故有些运算时需要用到类型转换

  1. public class Demo3 {
  2. public static void main(String[] args) {
  3. int i = 128;
  4. //强制转换 (类型)变量名 高->低
  5. byte b = (byte)i;
  6. //自动转换 低->高
  7. double d = i;
  8. System.out.println(i); //128
  9. System.out.println(b); //-128 内存溢出
  10. System.out.println(d); //128.0
  11. /*
  12. 注意:
  13. 1.不能对布尔值进行转换
  14. 2.不能把对象类型转换为不相干的类型
  15. 3.高--->低 强制转换
  16. 4.转换时可能存在溢出问题或者精度问题
  17. */
  18. }
  19. }

关于溢出问题:操作比较大的数时,要注意溢出问题

  1. public class Demo4 {
  2. public static void main(String[] args) {
  3. int money = 10_0000_0000; //JDK7的新特性
  4. int years= 30;
  5. int sum1 = money*years; //-64771072溢出
  6. long sum2 = money*years; //-64771072,默认是int,转换之前已存在问题
  7. long sum3 = money*(long)years; //30000000000
  8. }
  9. }

五、变量、常量、作用域

1、变量

注意事项:

  • 每个变量都有类型
  • 变量名必须为合法的标识符

2、常量

常量(constant):初始化后不能再改变值!

常量名一般用大写字母

  1. final double PI = 3.14;

3、变量作用域

  1. public class Demo5 {
  2. //类变量 static
  3. static double salary = 2500;
  4. //实例变量:从属于对象;若不自行初始化,则输出默认值
  5. //默认值 :0 0.0 false null
  6. String name;
  7. int age;
  8. //main方法
  9. public static void main(String[] args) {
  10. //局部变量:必须声明和初始化值
  11. int i = 10;
  12. System.out.println(i); //10
  13. //变量类型 变量名
  14. Demo5 demo5 = new Demo5();
  15. System.out.println(demo5.age); //0
  16. System.out.println(demo5.name); //null
  17. //类变量 static
  18. System.out.println(salary); //2500
  19. demo5.method(); //100
  20. }
  21. //其他方法:
  22. public void method(){
  23. int i = 100; //局部变量
  24. System.out.println(i);
  25. }
  26. }

一些命名规范:重要指数五颗星★★★★★

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则(monthSalary)
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线(MAX_VALUE)
  • 类名:首字母大写和驼峰原则(Boy、GoodBoy)
  • 方法名:首字母小写和驼峰原则(run()、toRun())

六、基本运算符

1、算术运算符

  1. public class Demo6 {
  2. public static void main(String[] args) {
  3. //二元运算符
  4. int a = 10;
  5. int b = 20;
  6. int c = 25;
  7. int d = 25;
  8. System.out.println(a+b); //30
  9. System.out.println(a-b); //-10
  10. System.out.println(a*b); //200
  11. System.out.println(a/(double)b); //0.5
  12. System.out.println(a%b); //10
  13. }
  14. }

值得理解指数五颗星★★★★★

  1. public class Demo8 {
  2. public static void main(String[] args) {
  3. //一元运算符
  4. int a = 3;
  5. int b = a++; //先给b赋值,再自增
  6. //a++ a = a+1
  7. System.out.println(a); //4
  8. //++a a = a+1
  9. int c = ++a; //先自增,再给c赋值
  10. System.out.println(a); //5
  11. System.out.println(b); //3
  12. System.out.println(c); //5
  13. }
  14. }

2、关系运算符

  1. public class Demo8 {
  2. public static void main(String[] args) {
  3. //关系运算符返回结果: true or false
  4. int a = 10;
  5. int b = 20;
  6. System.out.println(a>b); //false
  7. System.out.println(a<b); //true
  8. System.out.println(a==b); //false
  9. System.out.println(a!=b); //true
  10. }
  11. }

3、逻辑运算符

  1. public class Demo9 {
  2. public static void main(String[] args) {
  3. //逻辑运算符
  4. //与 and 或 or 非(取反)
  5. boolean a = false;
  6. boolean b = true;
  7. System.out.println("a && b :"+(a&&b)); //false
  8. System.out.println("a || b :"+(a||b)); //true
  9. System.out.println("!(a && b) :"+(!(a&&b))); //true
  10. //短路运算
  11. int c = 5;
  12. boolean d = (c<4)&&(c++<4); //c<4必然错了,故短路
  13. System.out.println(d);
  14. System.out.println(c); //5,因为不实现自增
  15. }
  16. }

4、位运算符

  1. public class Demo10 {
  2. public static void main(String[] args) {
  3. /*
  4. A = 0011 1100
  5. B = 0000 1101
  6. --------------
  7. A&B:0000 1100 上下比较,两个都是1则为1,否则为0
  8. A/B:0011 1101 上下比较,两个都为0则为0,否则为1
  9. A^B:0011 0001 上下比较,相同为0,不同为1
  10. ~B :1111 0010 与B完全相反
  11. 问:2 * 8 = 16 怎样运算最快?
  12. 答:2 * 2 * 2 * 2
  13. 必记!!!
  14. << 左移 *2
  15. >> 右移 /2
  16. 0000 0000 0
  17. 0000 0001 1
  18. 0000 0010 2
  19. 0000 0011 3
  20. 0000 0100 4
  21. 0000 1000 8
  22. 0001 0000 16
  23. */
  24. System.out.println(2<<3);
  25. }
  26. }

5、条件(三元)运算符

  1. public class Demo11 {
  2. public static void main(String[] args) {
  3. //x ? y : z
  4. //若x==true,则结果为y,否则为z
  5. int score = 80;
  6. String type = score < 60 ? "不及格" : "及格";
  7. System.out.println(type); //及格
  8. }
  9. }

6、扩展运算符

  1. public class Demo12 {
  2. public static void main(String[] args) {
  3. int a = 10;
  4. int b = 20;
  5. a+=b; //a=a+b
  6. a-=b; //a=a-b
  7. System.out.println(a); //10
  8. //------------------------------------------------------
  9. System.out.println("----------------------------------");
  10. //字符串连接符 +
  11. System.out.println(""+a+b); //1020
  12. System.out.println(a+b+""); //30
  13. }
  14. }

七、包机制

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

如:www.baidu.com

  1. package com.baidu

Java中导入包机制:import (IDEA现在一般会自动导入)

八、JavaDoc生成文档

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

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

疯狂Java基础Day1的更多相关文章

  1. java基础-day1

    第01天 java基础知识 今日内容介绍 u Java概述.helloworld案例 u 工具安装 .配置环境变量.注释.关键字 u 常量.变量.数据类型.标识符 第1章   Java概述 1.1  ...

  2. 疯狂Java基础Day2

    巩固Java流程控制的学习... 一.用户交互Scanner 通过Scanner类获取用户的输入 import java.util.Scanner; public class Demo1 { publ ...

  3. udp协议基础(转自疯狂java讲义)

    第17章  网络编程 17.4  基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...

  4. Java基础进阶整理

    Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...

  5. 《疯狂Java讲义》(一) ---- 关于学习Java的反思

    "听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...

  6. 《疯狂java讲义》笔记 1-5章

    1.编译语言和解释语言理解,摘自李刚老师的<疯狂Java讲义>第三版: 就是说,Java和.net都是编译型有事解释型语言.编译型就是根据不同平台编译成不同的可执行机器码,编译过程中会进行 ...

  7. 《疯狂java讲义》读后感

    <疯狂java讲义·第三版>,全书共851页,18章. 目录如下: 第1章 Java语言概述与开发环境 第2章 理解面向对象 第3章 数据类型和运算符 第4章 流程控制与数组 第5章 面向 ...

  8. 如何学习java?Java基础知识点分享

    面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...

  9. Java课堂笔记(一):Java基础

    本篇博客将对Java中的数据类型.操作符,常量与变量和数组进行介绍.这些内容都是Java中最基本的知识,也是初学Java时最开始就需要了解的东西. Java数据类型 Java是一种强类型的语言,这就意 ...

随机推荐

  1. 硕盟 type-c转接头转接口(HDMI+VGA+USB3.0+PD3.0)四合一拓展坞

    硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...

  2. 常见shell脚本测试题 for/while语句

    1.计算从1到100所有整数的和2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和3.求从1到100所有整数的偶数和.奇数和4.执行脚本输入用户名,若该用户存在,输出提示该用户已存 ...

  3. Vue指令及自定义指令的使用

    导航列表: 一.vue指令 二.自定义指令 一.vue指令 回到顶部    1. v-text v-text主要用来更新textContent,可以等同于JS的text属性,不会解析标签,会把标签解析 ...

  4. redis的集群安装

    1.创建安装目录 在master ,node1 ,node2中分别创建 mkdir /usr/local/soft/redis-cluster 2.将redis 复制到redis-cluster 目录 ...

  5. AtCoder Regular Contest 069 D - Menagerie 枚举起点 模拟递推

    arc069.contest.atcoder.jp/tasks/arc069_b 题意:一堆不明身份的动物排成一圈,身份可能是羊或狼,羊一定说实话,狼一定说假话.大家各自报自己的两边是同类还是不同类, ...

  6. Jmeter系列(24)- 常用逻辑控制器(3) | 模块控制器Module Controller

    模块控制器(Module Controller) 作用 可以理解为引用.调用执行的意思,调用范围为testplan树下任意的逻辑控制器,模块控制器除外 点开testplan树,需要引用哪个逻辑控制器选 ...

  7. IDL使用

    出错的问题,可能是因为路径,或者没有建立工程文件. 运行IDL并在preferences项里修改设置(如图中红框所示) (IDL 8.4中在) 2, 中文字符显示乱码,改为gb2312

  8. 试玩Aid Learning

    前言 记录一下步骤 下载安装 github官网 切换源 ## 打开Terminal复制回车即可 cd /etc/apt/&& cp sources.list sources.list. ...

  9. sonar-scanner命令参数分析

    C:\Users\huang>sonar-scanner -h INFO: INFO: usage: sonar-scanner [options] INFO: INFO: Options: I ...

  10. three.js 材质翻转

    刚学.这个鸟玩意儿卡了半天,记录一下. var skyBox = new THREE.Mesh(skyGeometry, skyMaterial); //创建一个完整的天空盒,填入几何模型和材质的参数 ...