2020-08-15 基础语法

二进制

含义

计算机中的数据都以二进制数字保存。不同于十进制“逢十进一”,二进制是“逢二进一”,只有0、1两个数值。

计算机中信息的存储单位
  • 位(Bit):表示一个二进制数码 0 或 1,是计算机存储处理信息的最基本的单位;
  • 字节(Byte):一个字节由 8 个位组成。它表示作为一个完整处理单位的 8 个二进制数码。

转换

二进制 转 十进制
例:10111011.01
= 1×128 + 0×64 + 1×32 + 1×16 + 1×8 + 0×4 + 1×2 + 1×1 + 0×1/2 + 1×1/4
= 128 + 0 + 32 + 16 + 8 + 0 + 2 + 1 + 0 + 1/4
= 187.25

十进制 转 二进制
例:10 => 1010
在这里插入图片描述

补码

事实上,计算机内的二进制数值是以补码的形式表示的。
正数的补码是自己,负数的补码是其正数版的二进制形式按位取反后加1。因此,二进制补码数值得最高位(最左)可作为符号位:该位为0,说明数值是正数;若为1,则数值是负数。
例:10 -> 00001010 (补码=原码)
-10 -> 11110110 (补码=对应正数的二进制按位取反+1)

使用补码的原因是可以将符号位和其他位统一处理 (符号位本身不是数字的一部分,位于最高位);其次减法可以按加法处理;两个补码表示的数相加时,最高位(符号位)若有进位,则进位被舍弃。

变量概述

含义

变量是系统给程序分配的一块内存单元,用于存储各类型的数据。

分类

所属数据类型分为 基本数据类型变量 、 引用数据类型变量;
被声明的位置分为 成员变量 (在方法外部及且在类的内部声明)、 局部变量(在方法或语句块内部声明)。

tips:
不可以在类的外部声明变量!

标识符及命名规范

标识符时在Java中用来给包、类、方法、变量等要素命名的字符序列。包含以下规范:

  1. 由字母、数字、下划线(_)和美元符号($)组成;
  2. 区分大小写;
  3. 长度不限,但需见名知意
  4. 不能以数字开头;
  5. 不能使用Java关键字。

关键字和保留字

关键字:在Java中具有特定含义,被赋予特定用途的字符串。关键字均为小写。

在这里插入图片描述
保留字:没有定义用途,但保留备用。( goto、const)

作用域(局部变量)

局部变量是声明在方法或语句块内部,意味着其只作用于方法内部或“{ }”语句结构范围内,一旦超出结构外就被当做垃圾回收掉了,因此是其作用域。

public static void main(String[] args){
	int a = 10;
	System.out.println(a); // 10

	{
		int b = 20;
		int c = 30;
	}
	System.out.println(b+c); // 50
	
	{
		System.out.println(a); // 报错,变量不存在
		System.out.println(c); // 报错,变量不存在
	}
}

数据类型及转换

数据类型



数据类型占内存(字节数)值范围默认值
字节(byte)1-128 ~ 1270
布尔(boolean)1true / falsefalse
字符(char)2‘\u0000 - u\ffff’‘\u0000’
短整型(short)2-32768 ~ 327670
整型(int)4-2 147 483 648 ~ 2 147 483 647(稍大于 20 亿)0
单精度浮点(float)4-3.40292347E+38 - 3.40292347E+38 0.0f0.0f
长整型(long)8-9 223 372 036 854 775 808L ~ 9 223 372 036 854 775 807L0
双精度浮点(double)8-1.79769313486231570E+308 - 1.79769313486231570E+3080.0d

tips:

  1. 一个bit是计算机可以存储的最小数据单位,即1位,只能是0或1;
  2. 1byte = 8bit,可表示21*8=256个整数值,由于byte(B)在Java中有符号之分(即正负数),所以范围为-128~127;除布尔型和字符型外的数据类型,值的范围均由2占内存字节数*8确定;
  3. 1T=1024G,1G=1024M,1M=1024K,1K=1024B。

数据类型转换

tips:

  1. boolean 类型不能转换成任何其它数据类型;
  2. byte,short,int 不会互相转换,它们三者在计算时会转换成 int 类型。

自动转换:由占用内存的数据类型转换成占用内存
byte,short,int --> float --> long --> double

short s = 56;
long l = s;

强制转换:由占用内存的数据类型转换成占用内存的。可能会诱发内存溢出,精度丢失的问题。

int a = 6;
byte b = (byte)a;

float、long、char变量声明
float

浮点型声明时,我们直接写出的浮点数字默认类型是double,因此声明float变量时,

  1. 可强制转换;
  2. 按h3的写法声明。
float f1 = 12; // 可以直接赋值整型
float f2 = (float)12.0; // 强转
float f3 = 13.0f; // 直接赋值13.0,会报错
System.out.println(f1); // 12.0
System.out.println(f2); // 12.0
System.out.println(f3); // 13.0

long

长整型声明时,我们直接写出的整形数字默认类型是int,有上限,因此按h2的写法声明long变量。

long l1 = 2000000000; // 小于int值上限,不报错
long l2 = 2200000000l; // 超过int值范围声明而不加l,会报错
System.out.println(l2);

char

char型实际上为数值类型,在计算机存储时用数字进行存储,因此可参与数字运算(++);在声明时,只能声明单一字符,且需使用单引号( ’ ’ )。

char c1 = '1'; // 声明char c2 = '12'; 会报错
char c3 = 'K';
char c4 = '李';
System.out.println(c1); // 1
System.out.println(++c1); // 2
System.out.println(c3); // K
System.out.println((int)c3); // 输出75,是ASCII码表中'K'对应的二进制码的十进制表达
System.out.println(++c3); // L
System.out.println((int)c3); // 76
System.out.println(++c3); // M
System.out.println((int)c3); // 77
System.out.println(c4); // 李
System.out.println(++c4); // 杏
System.out.println(++c4); // 材

ascii码表

在这里插入图片描述

方法

用于封装一段特定的逻辑功能。主要要素有权限修饰符、方法名、参数列表、返回值等。

/* 有返回值的方法 */
public int sum(int num1, int num2){
	// public 权限修饰符;int 返回值数据类型;sum 方法名;(int num1, int num2)为参数列表,通常是要被逻辑代码处理的数据
	int s = num1 + num2; // 逻辑代码
	return s; // 通过return语句返回,作用在于结束方法且将数据返回
}

/* 不含返回值的方法声明 */
public void hello(){
	System.out.println("这是一个不含返回值的方法"); 
}

tips:

  1. 如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为 void
权限修饰符同类同包不同包,子类不同包,非子类(整个工程)
private
默认
protected
public

运算符

算术运算符
算术运算符含义描述
+-
--
*-
/-
%取余(模)-
++自增当在变量前时(例 ++i),表示先自增后执行其他逻辑;
当在变量前后(例 i++),表示先执行其他逻辑后执行自增运算
- -自减同自增
/* 除、取余运算展示 */
int a = 10;
int b = 3;
System.out.println(a/b); // 输出:3,a,b均为整型,除运算后结果同样为整型
System.out.println(a%b); // 1 

/* 自增运算展示 */
int a = 10;
System.out.println(++a); // 输出:11,先执行自增运算,再进行输出逻辑
System.out.println(a); // 11	
a = 10;
System.out.println(a++); // 10
System.out.println(a); // 11

赋值运算符
赋值运算符含义
=赋值
+=加等于
-=减等于
*=乘等于
/=除等于
%=模等于

关系运算符
关系运算符含义
>大于
<小于
>=大于等于
<=小于等于
==等于
!=不等于

逻辑运算符
逻辑运算符含义描述
&-
|-
!-
^异或左右两边结果相同,即为false;否则为true
&&短路与若左边为false,右边不再执行判断,结果直接判断为false
||短路或若左边为true,右边不再执行判断,结果直接判断为true
/* 异或用法展示 */
int a = 10;
int b = 20;
System.out.println(a>b^a*2==b); // true
System.out.println(a<b^a==b); // true
System.out.println(a>b^a==b); // false
System.out.println(a<b^a+10==b); // false

tips:
计算机中默认1为true,实际上只要非零即真;0为false

字符串连接符

格式:String1 + String2
若连接符两边存在一边是字符串型的数据,则 “+” 表示含义为字符串拼接;同时不管另一边是否是字符串型的数据,将自动转换成String型进行拼接。

String s = "Hello"
System.out.println(s+100); // Hello100

三目运算符

格式:布尔类型表达式 ? 逻辑为true执行的结果 : 逻辑为false执行的结果

int a = 10;
int b = 20;
System.out.println(a>b?"a大于b":"a不大于b"); // a不大于b

操作符优先级
优先次序运算符
1. [] ()
2++ - - ! ~ instance of
3new(type)
4* / %
5+ -
6>> >>> <<
7> < >= <=
8== !=
9&
10^
11|
12&&
13||
14?:
15= += -= *= /= %= ^=
16&= |= <<= >>= >>>=

转义字符

转义字符含义
\n换行,将位置移动到下一行开头
\r回车,将位置移动到本行开头
\t制表符
\\一个反斜杠字符
\’一个单引号字符
\"一个双引号字符
/* 制表符的应用 */
System.out.println("正常输出:");
System.out.println("1 2 3 4 5");
System.out.println("11 22 33 44 55");
System.out.println();
System.out.println("添加制表符输出:");
System.out.println("1\t2\t3\t4\t5");
System.out.println("11\t22\t33\t44\t55");

在这里插入图片描述

编程规约

(仅展示常用,不展示全部alibaba规约文档)

  1. 所有命名不允许以下划线(_)和美元符号($)开头;
  2. 严禁拼音与英文混合使用;
  3. 类名:各单词首字母大写,其余字母小写;
  4. 方法名:首单词全部小写,后各单词首字母大写,其余字母小写;
  5. 变量名:全部单词小写;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值