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

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

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

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

一、注释

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

谨记在心的两句话:

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

二、标识符和关键字

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

注意点:

  • 所有标识符必须以字母、美元符$、下划线_ 开始,首字符后随意,但为了规范,建议用好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

八大基本数据类型:

public class Demo1 {
public static void main(String[] args) {
//八大基本数据类型
//整数
byte num1 = 10;
short num2 = 500;
int num3 = 6666; //常用
long num4 = 999999999L; //long类型一般在数字后面加L
//小数
float num5 = 9.6F; //float类型一般在数字后面加F
double num6 = 66.99;
//字符
char name = 'W';
//字符串(引用类型)
//String id = "我在吃大西瓜呢";
//布尔值
boolean flag1 = true;
boolean flag2 = false;
}
}

相关拓展:

public class Demo2 {
public static void main(String[] args) {
//整数拓展: 进制 二级制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;
int i3 = 0x10;
System.out.println(i); //10
System.out.println(i2); //8
System.out.println(i3); //16
System.out.println("===============================================");
//=================================================================
//浮点数拓展: 问--->有关银行业务怎么表示?
// 答--->BigDecimal数学工具类
//因为float是有舍入误差
//example1:
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //false
//example2:
float d1 = 12345678998765f;
float d2 = d1+1;
System.out.println(d1==d2); //true
System.out.println("===============================================");
//=================================================================
//字符拓展 强制转换
//所有的字符本质还是数字 参考Unicode编码表
char c1 = 'a';
char c2 = '我';
System.out.println(c1);
System.out.println((int)c1); //97
System.out.println(c2);
System.out.println((int)c2); //25105
char c3 = '\u0061';
System.out.println(c3); //a
//转义字符 (百度一下!)
// \t 制表符
// \n 换行
System.out.println("===============================================");
//=================================================================
//布尔值拓展
boolean flag = true;
//以下表示方法一样 less is more!
//if(flag==true){}
//if (flag){}
}
}

四、类型转换

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

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

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

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

五、变量、常量、作用域

1、变量

注意事项:

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

2、常量

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

常量名一般用大写字母

final double PI = 3.14;

3、变量作用域

public class Demo5 {
//类变量 static
static double salary = 2500; //实例变量:从属于对象;若不自行初始化,则输出默认值
//默认值 :0 0.0 false null
String name;
int age; //main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(i); //10 //变量类型 变量名
Demo5 demo5 = new Demo5();
System.out.println(demo5.age); //0
System.out.println(demo5.name); //null //类变量 static
System.out.println(salary); //2500 demo5.method(); //100
} //其他方法:
public void method(){
int i = 100; //局部变量
System.out.println(i);
}
}

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

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

六、基本运算符

1、算术运算符

public class Demo6 {
public static void main(String[] args) {
//二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25; System.out.println(a+b); //30
System.out.println(a-b); //-10
System.out.println(a*b); //200
System.out.println(a/(double)b); //0.5
System.out.println(a%b); //10
}
}

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

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

2、关系运算符

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

3、逻辑运算符

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

4、位运算符

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

5、条件(三元)运算符

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

6、扩展运算符

public class Demo12 {
public static void main(String[] args) {
int a = 10;
int b = 20; a+=b; //a=a+b
a-=b; //a=a-b
System.out.println(a); //10
//------------------------------------------------------
System.out.println("----------------------------------");
//字符串连接符 +
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
}
}

七、包机制

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

如:www.baidu.com

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转接头|四合一多功能扩展坞

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

  2. python库--tensorflow--io操作

    方法 返回值类型 参数 说明 .train.Saver() 实例s var_list=None 指定被保存和恢复的变量 dict: {name: 变量} list: [变量] None: 所有save ...

  3. 【C++周报】第二期 2021-8-19

    这次我们照样看一道题.个人认为比上一次的简单. https://vijos.org/p/1130 先说方法,动态规划,你能想到什么? "在它的左边加上一个自然数,但该自然数不能超过原数的一半 ...

  4. Elasticsearch(ES)的滚动搜索与批量操作

    1. 概述 今天我们来聊一下Elasticsearch(ES)的滚动搜索与批量操作. 2. Elasticsearch(ES)的滚动搜索 2.1 概述  滚动搜索我们经常能够用到,例如:推荐列表,此类 ...

  5. mysql5.5根据条件进行排序查询 TP5

    用到了 order by if 和 count 使用的是TP5.0 $sql = Db::name('teacher') ->alias('t') ->join('user u', 'u. ...

  6. 安装VM-TOOLS,解压tar包时提示目录磁盘空间不足

    在虚拟机里安装了ubuntu-18.04.4-desktop-amd64,安装VM-TOOLS,解压tar包时提示目录磁盘空间不足. 解决方法一: 打开terminal,输入:sudo apt ins ...

  7. P5056-[模板]插头dp

    正题 题目链接:https://www.luogu.com.cn/problem/P5056 题目大意 \(n*m\)的网格,求有多少条回路可以铺满整个棋盘. 解题思路 插头\(dp\)的,写法是按照 ...

  8. P4201-[NOI2008]设计路线【结论,树形dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4201 题目大意 给出\(n\)个点的一棵树开始所有边都是白色,选出若干条没有公共点的路径将上面所有边变为黑色. ...

  9. YbtOJ#493-最大分数【斜率优化dp,分治】

    正题 题目链接:http://www.ybtoj.com.cn/contest/117/problem/1 题目大意 \(n\)个数的一个序列,给其中的一些数打上标记. 一个标记方案的贡献为\(s_1 ...

  10. Windows10 IIS Web服务器安装配置

    前言: 对于.NET开发者而已,IIS Web托管服务器应该是十分的熟悉的.对于刚安装Windows10的系统的用户而已Internet Information Services(IIS)功能是默认关 ...