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

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

推一个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. 【AGC025B】RGB Color

    [AGC025B]RGB Color 题面描述 Link to Atcoder Link to Luogu Takahashi has a tower which is divided into \( ...

  2. Anaconda配置国内镜像源

    1. 为conda配置(清华)镜像源 使用conda进行安装时,访问的是国外的网络,所以下载和安装包时会特别慢.我们需要更换到国内镜像源地址,这里我更换到国内的清华大学地址.(永久添加镜像) Wind ...

  3. CVPR顶会论文爬取存入MySQL数据库(标题、摘要、作者、PDF链接和原地址)

    main.py import pymysql import re import requests # 连接数据库函数 from bs4 import BeautifulSoup def insertC ...

  4. python 打字小游戏

    最近随便用python的pygame编了这个打字小游戏 只要有字母调到窗口底部就结束 上代码: import pygame.freetype import sys import random pyga ...

  5. windows 下使用 mingw编译器 调试时 无法跟进源码

    windows 下使用 mingw编译器 调试时 无法跟进源码 最近在公司使用QT 开发,官方在线下载的 安装的QT mingw 都是没有debug版本的 由于没有debug版本动态库 所以你调试的时 ...

  6. PHP中的日期相关函数(三)

    之前我们已经介绍过了 PHP 的一些相关的日期操作对象,今天我们就来学习剩下的那些面向过程的使用方式.当然,如果是和 DateTime 类中相似的方法我们就不再进行介绍了.另外,Date() 和 ti ...

  7. ecshop调用商品原图的方法

    一.在列表页可以用{$goods.goods_thumb}   {$goods.goods_img}调用缩略图和商品图片 就是没有调用原图的下面是修改category.php 总sql语句处替换成下面 ...

  8. Docker系列(6)- 常用命令(2) | 镜像命令

    准备工作 知道查看官方文档,官方文档描述的很详细,并且每一种类型.每一个命令的选项都有例子 会使用docker --help查看 镜像命令 docker images 查看所有本地主机上的镜像 [ro ...

  9. Windows 10 64位操作系统 下安装、连接测试sqlite3 sql基本操作 增删改

    一.下载sqlite安装包 1:详细下载安装版本可见官网:https://www.sqlite.org/download.html 2:百度盘分享连接:https://pan.baidu.com/s/ ...

  10. php无限分类 构建树形结构

    <?php class Classification { const PARENT_ID = 'parentid'; const ID = 'id'; const CHILDREN = 'chi ...