Java语法

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

注释

不会被程序执行的代码或者块

//双斜杠表示单行注释

/*表示多行注释*/

标识符、关键字

关键词系统事先定义好的,我们能直接拿来用的,不能作为变量名使用

  • 所有的标识符只能以字母、美元符号、下划线开始

  • 首字母后可以以字母、美元符号、下划线或者数字组合

  • 不能使用关键字作为标识符,标识符区分大小写

  • 可以使用中文作为标识符(不推荐)

2.数据类型

Java是一门强类型语言:要求变量的使用严格符合规定,所有话能量要先定义后才能使用

Java两大数据类型

  • 基本数据类型
  • 引用数据类型

public class Demo{
public static void main(String[] args){ //基本数据类型的表示
int num1 = 10; //最常用的int
byte num2 = 20; //字节类型
short num3 = 30; //短整数类型
long num4 = 60L; //长整数类型 末尾L表示
float num5 = 50.1F //浮点数float后面+f
double num6 = 3.1415926535//浮点数类型
char word = 'H' //char类型表示一个字符 一个!
boolean t = true; //true or flase }
}

3.基本类型拓展

public class demo{
public static void main(String[] args){ //整数
int i_10 = 10; //表示十进制数的10
int i_8 = 010; //表示八进制数的10
int i_16 = 0x10 //表示是十六进制数的10 //字符 字符本质还是数字 (int)可以强制转换为其对应的数字,其数字是对于的ASCLL码
char a = 'n';
char b = '你';
System.out.println(a);
System.out.println((int)a); System.out.println(b);
System.out.println((int)b); //布尔值
boolean flag = true;
if(flag){} = if(flag == true){}
}
}

4.类型转换

在Java运算中,不同类型的数据要先转化为同一数据类型,然后就行运算

原则上转换规则如下:

  • 强制类型转换(高到低)
  • 自动类型转换(低到高)
public class demo{
public static void main(String[] args){
int i = 128;
byte b = (int)i; //强制类型转换 内存溢出
System.out.println(b); //-1
}
}

注意点

1.不能对boolean类型转换

2.不能把对象类型转换为不相干的类型

3.转换会造成精度损失

拓展:数字之间可以用下划线分割

int money = 100_0000_0000;

5.变量

数据类型 变量名 = 值;

type varName [=value] [{,varName[=value]}];

变量作用域

  • 类变量

    被static修饰 可以在其他方法内部直接使用

  • 实例变量

    与类绑定,调用前必须先new类的对象

  • 局部变量

    在方法内部定义,仅限于方法内部使用

public class Demo{

    //类变量 static
static double salary = 2500.0; //属性:实例变量 不初始化会编程默认值
//所有数值都是0或0.0 bool默认是false
//除了基本类型都是NULL
int i = 10; public static void main(String[] args){
System.out.println(salary);
int i = 10; //属性:局部变量
} //其他方法
public void other(){
Demo d = new Demo();//使用实例对象
System.out.println(d.i);
}
}

常量

一旦被定义就不能被改变的称之为常量,常量必须初始化!

final PI = 3.1415926; //常量一般使用大写字母表示

6.基本运算符 operator

public class demo{
public static void main(String[] args){
int a = 10; //赋值运算符
int b = 20; 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); //0 System.out.println(a<b); //true
System.out.println(a>b); //false
System.out.println(a==b); //false
System.out.println(a!=b); //true int c = a++;
int d = ++a;
System.out.println(c); //10
System.out.println(d); //12
System.out.println(a); //12 //拓展:幂运算
double pow = Math.pow(2,3)//2*2*2;
System.out.println(pow); //8
}
}

如果运算过程中有long类型的话那么结果都为long反之所有结果都为int

(cast 转换)

逻辑运算符

  • 与(and) &&

    两个运算符都为真时返回真 【运算符相乘】

  • 或(or) ||

    两个运算符其中一个为真返回真【运算符相加】

  • 非(nor) !

    单个运算符取相反的结果【运算符取反】

public class demo{
public static void main(String[] args){
int a = true;
int b = false; System.out.println(a&&b);//false
System.out.println(a||b);//true
System.out.println(!a);//false }
}

短路运算

与运算时如果第一个操作数为假那么直接返回假 不会计算第二操作数

或运算时如果第一个操作数为真那么直接返回真 不会计算第二操作数

public class demo{
public static void main(String[] args){
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5 boolean d = (c>4)||(c++<4);
System.out.println(d);//true
System.out.println(c);//5
}
}

位运算

&:位相乘结果

|:位相加结果

^:位是否相同 相同得1 反之得0

~:是1得0 是0得1

<<、>>:左移、右移运算符

public class demo{
public static void main(String[] args){
/*
0000 0000 0
0000 0001 2 2<<0
0000 0010 4 2<<1
0000 0100 8 2<<2
0000 1000 16 2<<3
*/
System.out.println(2<<0);//0
System.out.println(2<<3);
}
}

效率高!!!!

条件运算符

x ? y : z

如果x为真返回y反之返回z

public class demo{
public static void main(String[] args){
int y = 10;
int z = 20;
int x = (y==10)?y:z;
System.out.println(x); //10
}
}

运算符优先级

7.包机制

  • 类===>文件

  • 包===>文件夹

一般包以公司域名导致规则

例如:www.baidu.com 倒置后 com.baidu.www

在IDEA创建包时可以输入com.baidu.www会自动创建各个层级包

在Java代码中可以使用package来关联包名

package com.baidu.www; //导入本类包
import java.util.Data; //导入外类包

package必须在import上面

8. Java Doc

/**
* @Description 这是文档注释
* @Author StarVik
*/

在控制台编译Doc注释信息为一个文档

javadoc -encoding UTF-8 charset UTF-8 demo.java

课程来源:B站 遇见狂神说

零基础入门学习Java课堂笔记 ——day01的更多相关文章

  1. 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...

  2. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

  3. 《零基础入门学习Python》【第一版】视频课后答案第001讲

    测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...

  4. 零基础入门学习Python(1)--我和Python的第一次亲密接触

    前言 最近在学习Python编程语言,于是乎就在网上找资源.其中小甲鱼<零基础入门学习Python>试听了几节课,感觉还挺不错,里面的视频都是免费下载,小甲鱼讲话也挺幽默风趣的,所以呢,就 ...

  5. 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)

    093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  6. 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现

    088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现 本文知识点:Java封装的代码实现 说明:因为时间紧张,本人写博客过程中只 ...

  7. 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则

    080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...

  8. 057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和

    057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和 本文知识点:求整型数组的数组元素的元素值累加和 案例:求整型数 ...

  9. 056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用

    056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用 本文知识点:数组的实际应用 程序开发中如何应用数组? 程序代码及其运行结果: 不同数据类 ...

  10. 055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念

    055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念 本文知识点:数组的概念 数组的声明创建.初始化 在学习数组的声明创建.初始化前,我们可以和之 ...

随机推荐

  1. SpringBoot-mybatisplus-模糊查询

    模糊查询如何实现如下案例中两种实现方法 第一种:利用QueryWrapper.like自己实现. 第二种:使用@TableField(condition = SqlCondition.LIKE)实现. ...

  2. treeselect 表单验证解决方法

    https://www.cnblogs.com/wxqworld/p/11203603.html

  3. Java 内存管理最佳实践

    本文翻译自国外论坛 medium,原文地址:https://medium.com/@fullstacktips/best-practices-for-memory-management-in-java ...

  4. freeswitch的distributor模块

    概述 freeswitch 是一款简单好用的VOIP开源软交换平台. 当呼叫是同一个入中继,但是有多条出中继时,需要对出中继做负载均衡,mod_distributor模块可以完成对应的配置和路由. m ...

  5. spring--是如何解决单例模式下循环依赖问题的

    Spring 解决单例 bean 的循环依赖主要依赖于容器的三级缓存机制,以及 bean 的提前暴露.这里是它如何工作的: 三级缓存: 一级缓存(singletonObjects):存储已经经过完整生 ...

  6. 21-CMOS门电路的逻辑式

    CMOS门电路的逻辑式 通过CMOS门电路,写出门电路的表达式. 方法 只看下方,因为电路上下是对称的: 先找L(输出)的非,找的输出到地的通路,以原变量进行书写.最后将表达式取非,即可得到L.这种方 ...

  7. 在Windows 版的Chrome中切换标签页

    按住Ctrl+tab键之后使用page up/ page down键左右移动!

  8. 软考下午科目——第三章——UML分析与设计

    UML分析与设计 大纲要求: 学会面向对象的分析与设计,掌握UML描述方法 UML基础知识 面向对象的分析与设计 面向对象方法是一种运用对象.类.继承.封装.聚合.关联.消息.多态性等概念来构造系统的 ...

  9. Go-错误-error

  10. [转帖]TLS 加速技术:Intel QuickAssist Technology(QAT)解决方案

    https://zhuanlan.zhihu.com/p/631184323   3 人赞同了该文章 作者:vivo 互联网服务器团队- Ye Feng 本文介绍了 Intel QAT 技术方案,通过 ...