Java基础2-基本语法
复习
jvm : 虚拟机 --> sandbox
jre : jvm + 核心类库
jdk : jre + 工具,javac java
path: 操作系统搜索路径
classpath: java搜索类的目录顺序java -classpath d:\java;d:;.
java程序制作过程
1) 编写java源文件记事本notepad
editplus
2) 编译源文件,生成class文件(字节码文件)
3) 运行程序class文件java 类名(在classpath下找)
java -classpath | -cp 类名
java关键字
数据类型
- class //类
- interface //接口
- byte //字节 bit:位
- short //短整型 2 byte
- int //整型 4 bytes
- long //长整型 8 bytes
- float //浮点型
- double //双精度浮点.
- char //字符
- boolean //布尔 false true
- void //空
- null //空,不存在
流程控制
- if //如果
- else //否则
- switch //分支
- case //情况.
- default //默认,缺省
- while //当.. 循环
- do //
- for //for 循环
- break //中断
- continue //继续
- return //返回
访问权控制
private //私有的
proected //受保护的
public //公共的
类,函数修饰符
abstract //抽象
final //最终的
static //静态的
synchronized//同步
extends //扩展
implements //实现
new //新建
this //当前
super //超类,父类,
instanceof //是否是xxx实例
try //尝试
catch //捕获
finally //最终
throw //抛出
throws //定义类声明时,抛出异常
package //包
import //导入 export
native //本地的
transient //瞬时的,暂时的,临时的 persistent
asset //断言
标识符
- 26个英文字母
- 数字0-9
- _ + $
规范
java区分大小写
包名: aaa.bbb.ccc.ddd,全都小写
类: helloWorld --> HelloWorld,
变量和函数: convertStringToInt --> convertString2Int
常量大写: final String BRAND ="benz" ;
Demo: 演示作用
java的负数采用补码方式存储:取反 + 1 。
java中基本数据类型:primitive
- 默认整数是int类型,默认浮点数是double类型.
- 升格自动转换。隐式转换。
- 降格强制转换。显式转换。
注释
单行注释
//xxxxxxxx
多行注释
/*
* 多行注释
*/
文档注释: 类顶端
/**
* 文档注释
*/
存储范围换算
2^10 = 1024 = 1K
2^20 = 1024K = 1M
2^30 = 1024M = 1G
2^40 = 1024G = 1T
进制
十进制:0~9,(123,456)
二进制:0,1
八进制:0~7,以0开头(076)
十六进制:0~F,以0x开头(0x12,0xfe)
定权重:位高权重
进制转换
[十进制转二进制]
使用除法
2 | 13 ........ 1
2 | 6 ......... 0
2 | 3 ......... 1
2 | 1 ......... 1
---> 1101
内存中数据存储形式
byte: 2^8 = 256, -128~127
3 + (-3) =
0000 0011
+
1000 0011
-------------
= 1000 0110 = -6
负数的表现形式: 补码(正数取反+1)
124 = 0111 1100 | -124 = 1000 0100
125 = 0111 1101 | -125 = 1000 0011
126 = 0111 1110 | -126 = 1000 0010
127 = 0111 1111 | -127 = 1000 0001
| -128 = 1000 0000
判断结构
if(exp){
....
}if(exp1){
...
}
else{
...
}if(exp1){
...
}
else if(exp2){
...
}
...
else{
...
}
switch
支持的类型: byte short int char
循环语句
while(exp){
....
}//至少执行一次.
do{
...
}while(exp)
function
main() function
Modifier : public static void
一段独立程序
修饰符 返回值 函数名(参数类型1 参数名称1,参数类型2 参数名称2,...){
函数body
return ;//只有void类型的返回值才可以不写return.
}
变量的使用范围
仅在所处的{}中有效,也称之为生命,下面程序编译时会报错:
/**
*这是我的类,演示版。
*/
class CommentDemo{
/*
* 程序的入口点。args是参数。
*/
public static void main(String[] args){
{
int age = 20;
}
// 输出helloworld
System.out.println("hello world" + age);
}
}
强类型语言
javascript----弱类型语言,var
java-----强类型
int age = 20;
String name = "xxxx";
java中基本数据类型
byte, 1个字节
short, 2个字节
int, 4个字节
long, 8个字节
float, 4个字节
double, 8个字节
boolean, 1个字节
char, 两个字节
整数默认:int,小数默认:double
引用类型:
class
interface
[], 数组
特殊字符
'\t' //tab
'\r' //return
'\n' //new line
所有的byte、short、char 都将提升到int型
运算符
/**
*这是我的类,演示版。
*/
class CalcDemo{
/*
* 程序的入口点。args是参数。
*/
public static void main(String[] args){
int i = +5;
int j = -5;
System.out.println("i = " + i + ",j = " + j);
System.out.println("i = " + (+i) + ",j = " + (-j));
// + - * /
System.out.println(5 + 5);
System.out.println(5 - 5);
System.out.println(5 * 5);
System.out.println("==="+ ((float)5 / 3 * 3));
//取模
System.out.println(5 % 3); //求余
// ++ --
int a = 5, b = 5;
System.out.println("a = "+(a++)); //
System.out.println("b = "+ (++b)); //
// + 操作符重载
System.out.println("hello"+ "world"); //
System.out.println("5 + 5 = "+ (5 + 5)); //
//赋值 = += -= *= /= %=
int a1 = 5;
System.out.println("a1 += "+ (a1+=3)); //
short s = 2;
s = (short)(s+2);
s += 2;
System.out.println("s = "+ s); //
//比较运算符 == <> !=
boolean res = 5<= 5;
System.out.println(5<=5);
System.out.println(res);
System.out.println(5!=5);
Object o = "hello" ;
//instanceof 判断对象是否是指定的类型,后面跟的是引用类型
System.out.println(o instanceof String);
System.out.println(o instanceof Object);
//System.out.println(o instanceof int);//报错
System.out.println(o instanceof Class);
//逻辑运算符
// && || 存在短路操作
int c1 = 8, c2 = 3;
if(c1>5 && c2>5){
System.out.println("Ok");
}
else{
System.out.println("no ok");
}
if(c1>5 || c2>5){
System.out.println("Ok");
}
else{
System.out.println("no ok");
}
// & | ! ^ 不存在短路
if((c1 > 5) & (c2>5)){
System.out.println("Ok");
}
else{
System.out.println("no ok");
}
//System.out.println(5 && 6);//报错
System.out.println(true && false);
// 5 0000 0101
// 6 0000 0110
// ------------
// 0000 0100 = 4
System.out.println(5 & 6);//结果为4,按位与
System.out.println(5 | 6);//结果为7,按位或
//System.out.println(!6);//报错
//对boolean类型取反
System.out.println(!true);
boolean b0 = 3>4;
System.out.println(!b0);
//按位取反 ~
// 0000 0000 0000 0000 0000 0000 0000 0101
// 1111 1111 1111 1111 1111 1111 1111 1010
// 0000 0000 0000 0000 0000 0000 0000 0110
System.out.println(~5);
//异或 ^,按位异或,相同为假,不同为真
// 0...0 0101 = 5
//^0...0 1100 = 12
//------
// 0...0 1001 = 9
System.out.println(5^12);
//移位运算
// << 有符号左移
// >> 有符号右移
// 0000 1010 = 10
// 0010 10 00 = 40
System.out.println("10 << 2 = " + (10<<2));
System.out.println("6 << 2 = " + (6<<2));
// 0000 0110 = 6
// 0000 0001 = 1
System.out.println("6 >> 2 = " + (6>>2));
// -6 1111 1010
// -6 << 2 1110 1000 = -24
// 0001 1000
System.out.println("-6 << 2 = " + (-6<<2));
// -6 1111 1010
// -6 >> 2 1111 1110 = -2
// 0000 0010
System.out.println("-6 >> 2 = " + (-6>>2));
// >>> 无符号右移,空出的位用0填充
// -6 1111 1010
// -6 >>> 2 0011 1110 =
System.out.println("-6 >>> 2 = " + (-6>>>2));
System.out.println("-1 >> 3 = " + (-1>>3));
System.out.println("-1 >>> 3 = " + (-1>>>3));
// 三元运算符 ? : ;
int i1 = 10;
if(i1 < 5){
System.out.println("<5");
}
else{
System.out.println(">=5");
}
System.out.println(i1 < 5 ? "<5" : ">=5");
int x = 5, y = 6, z = 7;
System.out.println(x>y? x : y);
//三元运算符的嵌套
System.out.println(x>y? (x>z? x : z) : (y>z? y:z));
}
}
流控制
/**
* 流程控制
*/
class FlowControl
{
public static void main(String[] args){
//1. if
int a = 10;
if(a>5){
System.out.println("a is big");
}
//2. if - else,非此即彼
if(a<5){
System.out.println("a is small");
}
else{
System.out.println("a is big");
}
System.out.println("over");
//3. if - else if - else
// month 1-12
int m = 100;
if(m<=3 && m >=1){
System.out.println(m+"是春季");
}
else if (4<=m && m<=6){
System.out.println(m+"是夏季");
}
else if (7<=m && m<= 9){
System.out.println(m+"是秋季");
}
else if(m>=10 && m<=12){
System.out.println(m+"是冬季");
}
else{
System.out.println(m+"是无效的月份");
}
//4.另一种写法
if(m<=0 || m>=13){
System.out.println(m+"是无效的月份");
}
else if(m<=3){
System.out.println(m+"是春季");
}
else if(m<=6){
System.out.println(m+"是夏季");
}
else if (m<=9){
System.out.println(m+"是秋季");
}
else{
System.out.println(m+"是冬季");
}
//5. switch语句
int b = 2;
switch (b){
case 1:
case 2:
case 3:
System.out.println("small");
break;
case 4:
System.out.println("midlle");
//break;
case 5:
System.out.println("big");
break;
default:
System.out.println("??");
break;
}
//6.利用switch判断月份
int n = 11;
switch (n){
case 1:
case 2:
case 3:
System.out.println(n+"是春季");
break;
case 4:
case 5:
case 6:
System.out.println(n+"是夏季");
break;
case 7:
case 8:
case 9:
System.out.println(n+"是秋季");
break;
case 10:
case 11:
case 12:
System.out.println(n+"是冬季");
break;
default:
System.out.println(n+"是非法月份");
break;
}
//7. 简单写法
int c = 12;
if (c<1 || c>12){
System.out.println("非法月份");
return;
}
int season = (c-1)/3;
switch(season){
case 0:
System.out.println("春");
break;
case 1:
System.out.println("夏");
break;
case 2:
System.out.println("秋");
break;
default:
System.out.println("冬");
break;
}
//8. while循环
int i = 0;
while(true){
System.out.println(i);
i ++ ;
if(i>=10){
break;
}
}
System.out.println("--------");
//9. do...while循环
i = 0;
do{
System.out.println(i);
i ++ ;
if(i>=10){
break;
}
}while(i>1);
//10.打印直角三角形
int k = 10;
int k1 = 1;
while(k1<=10){
//输出整个一行
int k2 = 1;
while(k2<=k1){
System.out.print("*");
k2++;
}
System.out.println();
k1++;
}
//11. 99表格
int line = 9;
int row = 1;
//行循环
while(row<=9){
//列循环
int col = 1;
while(col <=row){
System.out.print(col + "x" + row + "=" + (col * row)+"\t");
col ++;
}
row ++;
System.out.println();
}
//12. for 循环
for(i = 0;i<=10;i++){
System.out.println(i);
}
//13. 前n项和
int sum = 0;
for(i = 0;i<=100;i++){
sum = sum +i;
}
System.out.println(sum);
}
}
[思考]
负数的表现形式,为什么如此设计?
-128是在内存中是如何存储的?推算过程?
如果字节表示为11111111,则其真实数据是多少?
正负数是否都支持补码的方式?
正数是否是负数的减一取反?
空心三角形
倒三角空心
[定义函数]
add // +
subtract // -
multiple // *
divide // /
支持float,doule,long,int。//函数重载.
Java基础2-基本语法的更多相关文章
- JAVA基础1(语法)
一.标识符和关键字 在程序中用于定义名称的都为标识符,如文件名称.类名称.方法名称或变量名称等. 在Java中标识符的定义格式由字母.数字._(下划线),$所组成,其中不能重复,不能以数字开头,不能是 ...
- java基础-03基本语法
关键词 常用关键字53个(含2个保留字): 1.保留关键字(2个) const --常量 常数:用于修改字段或局部变量的声明. goto--转到 指定跳转到标签,找到标签后,程序将处理从下一行开始的命 ...
- java基础四 基本语法
java基本语法: 1:java严格区分大小写,好比main和Main是完全不同的概念. 2:一个java的源文件中可以定义多个类,但是其中最多只能一个类被定义成public类,若源文件中包括publ ...
- Java基础_基本语法
Java基本语法 一:关键字 在Java中有特殊含义的单词(50). 二:标志符 类名,函数名,变量名的名字的统称. 命名规则: 可以是字母,数字,下划线,$. 不能以数字开头. 见名之意. 驼峰规则 ...
- 【Java基础】基本语法-程序流程控制
基本语法-程序流程控制 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺 ...
- 【Java基础】基本语法-变量与运算符
基本语法-变量与运算符 关键字和保留字 关键字定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串(单词). 关键字特点:关键字中所有字母都为小写. 用于定义数据类型:class.interf ...
- Java基础00-基础语法3
1. 注释 1.1 注释概述 1.2 注释分类 1.3 示例 2. 关键字 2.1 关键字概述 2.2 关键字的特点 3. 常量 3.1 常量的概述 3.2 常量分类 以上常量除了空常量都是可以直接输 ...
- Java基础之编程语法(二)
1.常量: 整型:整数,4个字节. 长整型:整数,8个字节.以L结尾. 单精度浮点数:小数,4个字节.以F结尾. 双精度浮点数:小数,8个字节. 布尔:只有两个值,真(true)或假(false),1 ...
- Java基础之编程语法(一)
1.基本格式 所有Java代码都应该在一个class中. Java是严格区分大小写的. Java是一种自由格式的语言.Java代码分为结构定义语句和功能执行语句,功能执行语句最后必须以分号结束. 2. ...
随机推荐
- go 命令
go build go build,是我们非常常用的命令,它可以启动编译,把我们的包和相关的依赖编译成一个可执行的文件. go help build 帮助命令 go build go build . ...
- django-rest-framework-jwt
官网文档:http://getblimp.github.io/django-rest-framework-jwt/ GitHub:https://github.com/GetBlimp/django- ...
- Dev-Tips
186 Chrome DevTools: How to use Logpoints for quicker JavaScript debugging You can use the new Logpo ...
- windows安装gitblit服务端
由于windows下没有gitlab之类的工具,只有很久没有更新的gitblit 下载Gitblit, 下载地址:http://www.gitblit.com/ 很长时间没有更新了,在没有linux环 ...
- 谈一谈Elasticsearch的集群部署
Elasticsearch天生就支持分布式部署,通过集群部署可以提高系统的可用性.本文重点谈一谈Elasticsearch的集群节点相关问题,搞清楚这些是进行Elasticsearch集群部署和拓 ...
- HDU 1015(字符运算 **)
题意是在一段大写英文字符中找出 5 个字符通过代入公式运算得到目标值,如有多组字符满足题意,则输出字典序最大的一组,否则输出 no solution. 应该是用深搜做的,但是直接暴力也过了……(应该没 ...
- 【c++】编译器为我们实现了几个类成员函数?
#include <cassert> #include <complex> #include <iostream> class Empty{}; Empty e; ...
- vue使用vue-awesome-swiper及一些问题
vue-awesome-swiper是基于swiper的一个轮播图插件,使用非常方便. 首先安装下 npm install vue-awesome-swiper --save 然后在入口文件main. ...
- Scrapy基础02
一.start_requests def start_requests(self): cls = self.__class__ if method_is_overridden(cls, Spider, ...
- Sliverlight常见错误集锦
1. 使用GridSplitter时候(参考),出现如下错误 C# 中的错误Error 2 The type 'sp:GridSplitter' was not found. Verify…… 对程序 ...