JavaBasic_02
Java的基础框架
3W:What How Why
What:一个东西是什么,具备什么样的功能 怎么用
How: 怎么做?功能如何实现
读源代码(jdk)->学习很多,优雅的编程技巧建立在what的基础上Why:设计(为什么别人要用这样的设计实现这样的功能)-->建立在how> > 的基础上(设计师,架构师)
说明:阅读代码比学代码难很多的!
idea create new project-create class文件
java语法中类被public修饰:
文件名和public修饰的类名必须相同
一个java文件中,有且仅能有一个被public修饰的类
可以有多个java类,只是这些java类不能被public修饰
javac的编译和执行单位,是类不是文件
关键字
概述:被Java语言赋予特定含义的单词(名称)
特点:组成关键字的字母全部小写
关键字注意事项:goto和const作为保留字符存在,目前并不使用
在Java中一共只有ppt中列出的49个关键字
关键字注意事项:
goto和const作为保留字存在,目前不适用
类似editplus,notepad++这样的高级记事本,针对关键字高亮
Java语法规定如果一个java文件中,有一个类这个类被public修饰
Java文件的名称必须与这个public修饰的公共类完全相同
一个Java文件中必须只能有一个被public修饰的类
但是可以有多个java类,这些不能被public修饰
javac的编译和执行单位是类而不是文件
标识符(自己起的名字)
含义:就是给类,接口,方法,变量等起名字时使用的字符序列
组成规则:
1 . 英文大小写字母
2 . 数字字符
3 . $和_
注意事项
1 . 不能以数字开头
2 . 不能是Java中的关键字
3 . 区分大小写
在实际开发中
对类和接口,变量和方法,包,常量起名字的时候,为了让我们的代码具有更高的可读性:有约定俗成的命名规则
1.类和接口:
一个单词:该单词首字母大写,其余字符小写。
多个单词:每个单词首字母大写,其余字符小写。//为了让代码更具可读性。public class JavaSign/ public class HelloWorld/ GetElementById
2.变量和方法起名字:
一个单词:全部小写 (main,get,set,a)
多个单词:第一个单词首字母小写,其余单词首字母大写 (toString,getClass)
3.包:
作用:为了组织java类的,避免命名冲突
一个单词:全部小写。(javabasic)
多个单词:域名反转形式:com.cskaoyan.www
网络中,ip地址->域名具有唯一性
域名:不是真的只有一个域名
4.常量:
一个单词:所有字母全部大写,例如:PI,MAX,MIN
多个单词:所有字母全部大写,但是单词之间用_连接,例如:MAX_VALUE,MIN_VALUE,STUDENT_AGE
注释
概述:用于解释说明程序的文字
2.分类
单行注释://注释文字
多行注释:/* 注释文字 */
文档注释:/** 注释文字 */ 生成jdk文档时候用,让编译器忽略注释符号所指代的那些文字,这些文字只给我们开发者来阅读
3.应用
先写注释,再写代码
第一步,完成xxx功能 //容易排错
4.注释的好处
1.梳理思路
2.排错,阅读代码,判断代码中的所表述的步骤,是否和注释说明的情况相一致(逻辑)
// 这是单行注释/*多行注释*//** 这是文档注释*/
常量
概述
在程序执行当中不会发生改变的量
常量分类
字面值常量
字符串常量:”hello world“
数值常量:34 59
小数常量:所有小数:0.2. 0.1
字符常量: 单引号括起来的常量 'a' 'b' '中'
字符和字符串存储的时候,存储的是代表字符或字符序列的数值; 每一个字符,都有相对应的数值。
单个字符用' ' , >=2个字符用" ".
ASCII码表
码表 ascii 字符 数值 'A' 'B' 'C' 65 66 67 '0' '1' 48 49 'a' 'b' 'c' 97 98 99 布尔常量: true false
Null空常量: 面向对象
自定义常量(面向对象)
进制数
二进制
取值范围(0和1),基数为2
转十进制 110 = 1 * 2^2 + 1 * 2^1 + 1*2^0 =7
每一位数字代表的实际值=x*2^n-1
八进制
取值范围(0-7),基数为8
转十进制 567 = 5 * 8^2 + 6 * 8^1 + 7*8^0 =
每一位数字代表的实际值=x*8^n-1
十进制
1.由0~9组成。整数默认是十进制
十六进制
取值范围(0-9 abcdef),基数为16
转十进制 c3= 12 * 16^1 + 2 * 16^0
每一位数字代表的实际值=x*16^n-1
不同进制之间的转换
十进制转二进制,八进制,十六进制
除整取余 (12) 第一步 12 % 2 余0
第二步 6 % 2 余0
第三步 3 % 2 余1
第四步 1 % 2 余1
所以 (12)=( 1100)~10~
二进制转八进制,十六进制
1100 0010 转化为八进制,三位二进制可以表示的范围为0-7,刚好是八进制一位的取值范围,如果是小数,就在小数点向左或向右补全0⃣️。
(011)(000)(010)=302
二进制转十六进制,从右向左,每四位为一组,(1100)(0010)=c2
常量(不同进制的表现形式)
//1100的十进制:system.out.println("1100");//1100的二进制:system.out.println("0b1100");//1100的八进制:system.out.println("01100")//1100的十六进制:system.out.println("0x1100")
常量(符号数据表示法)
在计算机内,有符号数有3种表示法:原码、反码和补码。
所有数据的运算都是采用补码进行的。
符号位不用分开计算,可以直接和数值位参与运算
正数和负数
一位二进制来表示正负,0为正,1为负
原码:带符号位的数值1100: 正数 0000 1100 表示 +1100
负数1000 1100 表示 -1100
反码:正数的反码与原码相同;负数的反码数对其原码逐位取反(1为0,0变1),但符号位除外。
补码:正数的补码与原码相同;负数的补码是在其反码的末位+1。
原码和其对应的补码的关系:原码 与 补码 是某种互补关系.
已知原码求补码,已知补码求原码. ////////////////
0000 0000 是 0
1000 0000 是-0 反码:1111 1111 补码为: 0000 0000 (反码后+1,进位,保留八位)
变量
变量定义格式(固定格式):
数据类型 变量名 = 初值(字面值常量)
int getValue = 10;
概述
在程序执行的过程中,某个范围内其值可以发生改变的量。
不同的数据类型,给变量分配不同的内存空间。
变量的初始化:给变量赋值
变量的作用域:在同一作用域(main函数大括号)内不能有重名变量。
数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间。(对数据类型的区分非常严格)
分类
1.基本数据类型
各种类型所占空间不同,所表示的数据范围不一样。
数值型
整数类型(byte ( -128-127)(一个字节),short(2),int(4),long(8个))
浮点类型(flout,double)
字符型(char)
布尔型(boolean)
整数默认:int (比如10) 小数默认:double (比如0.0)
如: ❌ flout c = 0.1 对: flout c = 0.1f
2.引用数据类型
类(class)
接口(interface)
数组([])
类型转换
布尔类型不能转换为其他数据类型
默认转换(小类型转换为大类型) (大范围类型无法放到小范围)
byte,short,char—>int—>long—>float—>double
byte,short,char相互之间不转换,他们参与运算首先转换为int类型.
char类型可以根据ascii转化和int类型相加
强制类型转换(大类型转小类型)
目标类型 变量名=(目标类型)(被转换的数据);
short b = 100;
Byte aa = (byte)(b+1);
//0 1000 0010
//
Byte bb = (byte)130 //超出范围,截取限定位数
JavaBasic_02的更多相关文章
随机推荐
- Python3各种进制之间的转换方法
一.2/8/10/16进制互转 1.1 2/8/10/16进制赋值 # 二进制赋值以0b打头 a = 0b1000 # 八进制赋值以0o打头,第一个是数字0第二个是字母o b = 0o1100 # 十 ...
- 解决libvlc_media_player_stop时死锁的方法
转自:http://www.jiazi.cn/blog/?id=56 扩散该解决方法 最近需要使用VLC控件来做一个简单的流媒体播放器,在实施过程中,发现在调用libvlc_media_player_ ...
- 把旧系统迁移到.Net Core 2.0 日记(8) - EASYUI datagrid+ Dapper+ 导出Excel
迁移也没太大变化,有一个, 之前的Request.QueryString 是返回NameValueCollection, 现在则是返回整个字符串. 你要改成Request.Query[“key”] 直 ...
- vue 给 图片添加一个默认图片
<img v-bind:src="userData.photo" :onerror="logo" class="img-box4"&g ...
- vertical-align属性测试实验面板 文字 图片对齐
转自:http://www.zhangxinxu.com/study/201005/verticle-align-test-demo.html
- Elasticsearch安装部署(CentOS)
1.安装JDK,http://www.cnblogs.com/zhi-leaf/p/5996287.html. 2.下载ES:https://www.elastic.co/downloads/elas ...
- axios API速查表
原来jq自带ajax方法,但是近期项目用vue,在vue项目中发送ajax请求原来用vue resource,现在更推荐使用axios,因为axios和vue更配! GET 请求 // Make a ...
- js之querySelector方法
querySelector()接受一个CSS选择符,返回匹配的第一个元素,反之则NULL. 如: var body = document.querySelector('body'); var mydi ...
- shell 流程控制语句
case语句 case $变量名 in "值1") 如果变量的值等于值1,则执行程序1 ;; "值2") 如果变量的值等于值2,则执行程序2 ;; ...
- In-App Purchase iap 内付费 二次验证代码 (java 服务器端)
参考网址:https://blog.csdn.net/a351945755/article/details/22919533 package com.yichangmao.buyVerify.Comm ...