Java基础语法学习
Java基础语法学习
1. 注释
- 单行注释: - //单行注释
 
- 多行注释: - /*多行注释
 多行注释
 多行注释
 多行注释
 */
 
2. 关键字与标识符
- 关键字:  
- Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符 - 标识符注意点- 所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary、#abc
 
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
 
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始
3. 数据类型
- Java是强类型语言 
- Java的数据类型分为两大类 - (八大)基本类型(primitive type) 
- 引用类型(reference type)  - //八大基本类型 //整数
 byte num1 = 10;
 short num2 = 20;
 int num3 = 30;//最常用
 long num4 = 40L;//Long类型要在数字后面加个L //浮点数
 float num5 = 50.1F;//float类型要在数字后面加个F
 double num6 = 3.1415926; //字符
 char name = 'A';
 //字符串,String不是关键字,是类
 //String name2 = "张三"; //布尔值:是非
 boolean flag = true;
 //boolean flag = false;
 
 
数据类型扩展
- 整数扩展:进制 - 0b二进制: - int i = 0b10;
 System.out.println(i);//输出为2
 - 0八进制: - int i = 010;
 System.out.println(i);//输出为8
 - 0x十六进制: - int i = 0x10;
 System.out.println(i);//输出为16
 
- 浮点数扩展: - float f = 0.1f; //0.1
 double d = 1.0/10; //0.1
 System.out.println(f==d);//输出为false
 - float d1 = 12343233232f;
 float d2 = d1 + 1;
 System.out.println(d1==d2);//输出为true
 
- 字符拓展:强制转换 - char c = "A";
 System.out.println((int)c);//输出为97
 
- 转义字符 - // \t 制表符
 // \n 换行
 
- String扩展 - String sa = new String(original:"hello world");
 String sb = new String(original:"hello world");
 System.out.println("sa==sb"); //false,因为是对象,从内存分析
 
- 布尔值扩展 - boolean flag = true;
 if (flag == true){} //新手
 if (flag){} //老手
 //Less is More! 代码要精简易读
 
4. 类型转换
- 运算中,不同类型的数据西安转化为同一类型,然后进行计算。  
- 强制类型转换:高-->低 - int i = 10;
 byte b = (byte)i;
 
- 自动类型转换:低-->高 - int i = 10;
 double b = i;
 
- 注意点: - 不能对布尔值进行转换 
- 不能把对象类型转换为不相干的类型 
- 在把高容量转换到低容量的时候,强制转换 
- 转换的时候可能存在内存溢出,或者精度问题 - int i = 128;
 byte b = (byte)i; //输出为-128,内存溢出
 - System.out.println((int)23.7); //23
 System.out.println((int)-45.89f); //-45
 - //操作比较大的数的时候,注意溢出问题
 //JDK7新特性,数字之间可以用下划线分割
 int money = 10_0000_0000;
 int years = 20;
 int total = money*years; //-1474836480,计算的时候溢出了
 long total2 = money*years; //默认是int,转换之前已经存在问题了
 long total3 = money*((long)years); //先把一个数转换为long
 
 
5. 变量、常量、作用域
变量
- 变量是什么:就是可以变化的量! 
- Java是一种强类型语言,每个变量都必须声明变量。 
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 - type varname [=value][{,varName[=value]}];
 //数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量。(不推荐)
 
- 注意事项 - 每个变量都有类型,类型可以是基本类型,也可以是引用类型。 
- 变量名必须是合法的标识符。 
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。 - //int a=1,b=2,c=3;(不推荐,程序可读性差)
 int a=1;
 int b=2;
 int c=3;
 String name = "zhang";
 char x = 'X';
 double pi = 3.14;
 
 
变量作用域
- 类变量 
- 实例变量 
- 局部变量 - public class Variable{
 static int allClicks=0; //类变量:写在方法外面,前面加static
 String str="hello world"; //实例变量:写在方法外面
 public void method(){
 int i = 0; //局部变量:写在方法里面
 }
 }
 - import java.sql.SQLOutput; public class 变量 {//这里类的名字最好用英文,我写错了 //类变量 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); //变量类型 变量名字 = new 变量类型();
 变量 变量 = new 变量();
 System.out.println(变量.age);
 System.out.println(变量.name); //类变量 static
 System.out.println(salary);
 } //其他方法
 public void add(){ } }
 
常量
- 常量:初始化后不能再改变值!不会变动的值。 
- 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。 - //final 常量名=值;
 final double PI = 3.14;
 
- 常量名一般使用大写字符。 - public class 常量 { //修饰符,不存在先后顺序
 static final double PI = 3.14;
 //final static double PI = 3.14; public static void main(String[] args) {
 System.out.println(PI);
 }
 }
 
变量的命名规则
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:润(),runRun()
6. 基本运算符
- 算数运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
自增自减运算符
- ++ --是一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,再自增
System.out.println(a); //输出4
System.out.println(b); //输出3
int c = ++a; //执行完这行代码后,先自增,再给b赋值
System.out.println(a); //输出5
System.out.println(c); //输出5
初识Math类
- 幂运算 - double pow = Math.pow(3,2);
 System.out.println(pow); //3^2=9
 
- 很多运算,我们会使用一些工具类来操作! 
逻辑运算符
- &&:逻辑与运算:两个变量都为真,结果才为true。 
- ||:逻辑或运算:两个变量有一个为真,则结果才为true。 
- !:逻辑非运算:如果是真,则变成假;如果是假,则变成真 
- 短路运算: - int c = 5;
 boolean d = (c<4)&&(c++<4);
 System.out.println(d); //因为c<4已经是false了,所以就不用进行接下来的计算了
 
位运算符
/*
	A = 0011 1100
	B = 0000 1101
	-------------------
	A&B = 0000 1100
	A|B = 0011 1101
	A^B = 0011 0001
	~B = 1111 0010
*/
/*
2*8 = 16 计算机怎么做算得快
	=2*(2*2*2)
	效率极高!!
    <<   *2
    >>   /2
    0000 0000 0
    0000 0001 1
    0000 0010 2
    0000 0100 4
    0000 1000 8
    0001 0000 16
*/
System.out.println(2<<3);
扩展赋值运算符
- a+=b --> a = a+b - a-=b --> a = a - b 
- 字符串连接符 + - int a = 10;
 int b = 20;
 System.out.println(""+a+b); //输出为1020
 System.out.println(a+b+""); //输出位30
 
条件运算符
- 三元运算符 
- x ? y : z - 如果x==true,则结果为y,否则结果为z - int score = 80;
 String type = score<60 ? "不及格" : "及格";
 System.out.println(type);
 
7. 包机制
- 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。(相当于文件夹) 
- 包语句的语法格式为 - package pkg1[.pkg2[.pkg3...]];
 
- 一般利用公司域名倒置作为包名; - com.baidu.www - com.baidu.wenku 
- 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能。 - import package1[.package2...].(classname|*);
 
Java基础语法学习的更多相关文章
- java 基础语法学习01
		Java基础语法 注释 初次使用idea时相关配置 new project ->Empty project->进入页面 再选择file->project structure-> ... 
- java基础语法学习DayOne
		一.关键字 1.概述:被java语言赋予特定含义的单词 2.特点:组成关键字的字母全部为小写 二.标识符 1.概述:给类.接口.方法.变量起名字时使用的字符序列 2.规则:只能使用英文大小写字母.数字 ... 
- Java基础语法学习知识
		基础概念 标识符1.由字母,数字,下划线,美元符组成2.首字母不能是数字3.不能是关键字和保留字4.能反映其作用 关键字1.有特定含义2.用于特定地方3.用来命名标识符 常量1.程序执行时值不变的量2 ... 
- Java基础语法学习(1)switch...case
		switch...case的标准语法 switch(待选择的变量) { case 值1:语句1; break; case 值2:语句2: break; ....... case 值n:语句n; bre ... 
- java 基础语法学习
		kuangstudy 注释 单行注释 多行注释 文档注释 public class HelloWorld { public static void main(String[] args) { //单行 ... 
- JavaSE入门学习7:Java基础语法之语句(下)
		继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ... 
- JavaSE入门学习6:Java基础语法之运算符和语句(上)
		继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ... 
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
		Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ... 
- Java基础知识学习(一)
		部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Jav ... 
随机推荐
- nginx 80端口跳转到443
			nginx配置文件80配置中增加 rewrite ^ https://$http_host$request_uri? permanent; 如图: https://blog.csdn.net/jian ... 
- woj1010 alternate sum 数学  woj1011 Finding Teamates 数学
			title: woj1010 alternate sum 数学 date: 2020-03-10 categories: acm tags: [acm,woj,数学] 一道数学题.简单. 题意 给一个 ... 
- Leetcode(884)-索引处的解码字符串
			给定一个编码字符串 S.为了找出解码字符串并将其写入磁带,从编码字符串中每次读取一个字符,并采取以下步骤: 如果所读的字符是字母,则将该字母写在磁带上. 如果所读的字符是数字(例如 d),则整个当前磁 ... 
- Leetcode(337)-打家劫舍III
			小偷又发现一个新的可行窃的地点. 这个地区只有一个入口,称为"根". 除了根部之外,每栋房子有且只有一个父房子. 一番侦察之后,聪明的小偷意识到"这个地方的所有房屋形成了 ... 
- hdu-6237
			A Simple Stone Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ... 
- 牛客多校第三场J LRU management(双向链表)题解
			题意: 给一个长度为\(m\)的队列,现给定以下操作: \(opt=0\),插入一个串,如果不在队里直接插入栈尾,如果超出\(m\)删队首:在队里就拿出来重新放到队尾,返回\(v\)值. \(opt= ... 
- golang1.16新特性速览
			今天是假期最后一天,明天起大家也要陆续复工了.golang1.16也在今天正式发布了. 原定计划是2月1号年前发布的,不过迟到也是golang的老传统了,正好也趁着最后的假期快速预览一下golang1 ... 
- 如何使用 Python 编写后端 API 接口
			如何使用 Python 编写后端 API 接口 get API Python3 # coding:utf-8 import json # ModuleNotFoundError: No module ... 
- Web 开发之  HTTP/2 & SPDY &  HTTP 1.1  & HTTP 对比分析详解!
			1 https://zh.wikipedia.org/wiki/HTTP/2 HTTP/2 维基百科,自由的百科全书 HTTP/2(超文本传输协议第2版 ... 
- CSS will-change All In One
			CSS will-change All In One CSS animation effect live demo https://nextjs.org/conf/ https://nextjs.or ... 
