复习

  1. jvm : 虚拟机 --> sandbox

  2. jre : jvm + 核心类库

  3. jdk : jre + 工具,javac java

  4. path: 操作系统搜索路径

    classpath: java搜索类的目录顺序

  5. java -classpath d:\java;d:;.

  6. java程序制作过程

    1) 编写java源文件

    • 记事本notepad

    • editplus

    2) 编译源文件,生成class文件(字节码文件)

    3) 运行程序class文件

    • java 类名(在classpath下找)

    • java -classpath | -cp 类名

java关键字

  1. 数据类型

    • class //类
    • interface //接口
    • byte //字节 bit:位
    • short //短整型 2 byte
    • int //整型 4 bytes
    • long //长整型 8 bytes
    • float //浮点型
    • double //双精度浮点.
    • char //字符
    • boolean //布尔 false true
    • void //空
    • null //空,不存在
  2. 流程控制

    • if //如果
    • else //否则
    • switch //分支
    • case //情况.
    • default //默认,缺省
    • while //当.. 循环
    • do //
    • for //for 循环
    • break //中断
    • continue //继续
    • return //返回
  3. 访问权控制

    • private //私有的

    • proected //受保护的

    • public //公共的

  4. 类,函数修饰符

    • abstract //抽象

    • final //最终的

    • static //静态的

    • synchronized//同步

    • extends //扩展

    • implements //实现

    • new //新建

    • this //当前

    • super //超类,父类,

    • instanceof //是否是xxx实例

    • try //尝试

    • catch //捕获

    • finally //最终

    • throw //抛出

    • throws //定义类声明时,抛出异常

    • package //包

    • import //导入 export

    • native //本地的

    • transient //瞬时的,暂时的,临时的 persistent

    • asset //断言

  5. 标识符

    • 26个英文字母
    • 数字0-9
    • _ + $

规范

  1. java区分大小写

  2. 包名: aaa.bbb.ccc.ddd,全都小写

  3. 类: helloWorld --> HelloWorld,

  4. 变量和函数: convertStringToInt --> convertString2Int

  5. 常量大写: final String BRAND ="benz" ;

  6. Demo: 演示作用

  7. java的负数采用补码方式存储:取反 + 1 。

  8. java中基本数据类型:primitive

    • 默认整数是int类型,默认浮点数是double类型.
    • 升格自动转换。隐式转换。
    • 降格强制转换。显式转换。

注释

  1. 单行注释

     //xxxxxxxx
  2. 多行注释

     /*
    * 多行注释
    */
  3. 文档注释: 类顶端

     /**
    * 文档注释
    */

存储范围换算

  1. 2^10 = 1024 = 1K

  2. 2^20 = 1024K = 1M

  3. 2^30 = 1024M = 1G

  4. 2^40 = 1024G = 1T

进制

  1. 十进制:0~9,(123,456)

  2. 二进制:0,1

  3. 八进制:0~7,以0开头(076)

  4. 十六进制:0~F,以0x开头(0x12,0xfe)

  5. 定权重:位高权重

  6. 进制转换

    [十进制转二进制]

    使用除法

    2 | 13 ........ 1

    2 | 6 ......... 0

    2 | 3 ......... 1

    2 | 1 ......... 1

    ---> 1101

内存中数据存储形式

  1. byte: 2^8 = 256, -128~127

     3 + (-3) =
    0000 0011
    +
    1000 0011
    -------------
    = 1000 0110 = -6
  2. 负数的表现形式: 补码(正数取反+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

判断结构

  1. if(exp){

    ....

    }

  2. if(exp1){

    ...

    }

    else{

    ...

    }

  3. if(exp1){

    ...

    }

    else if(exp2){

    ...

    }

    ...

    else{

    ...

    }

switch

支持的类型: byte short int char

循环语句

  1. while(exp){

    ....

    }

  2. //至少执行一次.

    do{

    ...

    }while(exp)

function

main() function

Modifier : public static void

  1. 一段独立程序

  2. 修饰符 返回值 函数名(参数类型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中基本数据类型

  1. byte, 1个字节

  2. short, 2个字节

  3. int, 4个字节

  4. long, 8个字节

  5. float, 4个字节

  6. double, 8个字节

  7. boolean, 1个字节

  8. char, 两个字节

整数默认:int,小数默认:double

引用类型:

  1. class

  2. interface

  3. [], 数组

特殊字符

  1. '\t' //tab

  2. '\r' //return

  3. '\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);
}
}

[思考]

  1. 负数的表现形式,为什么如此设计?

  2. -128是在内存中是如何存储的?推算过程?

  3. 如果字节表示为11111111,则其真实数据是多少?

  4. 正负数是否都支持补码的方式?

  5. 正数是否是负数的减一取反?

  6. 空心三角形

  7. 倒三角空心

  8. [定义函数]

    add // +

    subtract // -

    multiple // *

    divide // /

    支持float,doule,long,int。//函数重载.

Java基础2-基本语法的更多相关文章

  1. JAVA基础1(语法)

    一.标识符和关键字 在程序中用于定义名称的都为标识符,如文件名称.类名称.方法名称或变量名称等. 在Java中标识符的定义格式由字母.数字._(下划线),$所组成,其中不能重复,不能以数字开头,不能是 ...

  2. java基础-03基本语法

    关键词 常用关键字53个(含2个保留字): 1.保留关键字(2个) const --常量 常数:用于修改字段或局部变量的声明. goto--转到 指定跳转到标签,找到标签后,程序将处理从下一行开始的命 ...

  3. java基础四 基本语法

    java基本语法: 1:java严格区分大小写,好比main和Main是完全不同的概念. 2:一个java的源文件中可以定义多个类,但是其中最多只能一个类被定义成public类,若源文件中包括publ ...

  4. Java基础_基本语法

    Java基本语法 一:关键字 在Java中有特殊含义的单词(50). 二:标志符 类名,函数名,变量名的名字的统称. 命名规则: 可以是字母,数字,下划线,$. 不能以数字开头. 见名之意. 驼峰规则 ...

  5. 【Java基础】基本语法-程序流程控制

    基本语法-程序流程控制 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺 ...

  6. 【Java基础】基本语法-变量与运算符

    基本语法-变量与运算符 关键字和保留字 关键字定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串(单词). 关键字特点:关键字中所有字母都为小写. 用于定义数据类型:class.interf ...

  7. Java基础00-基础语法3

    1. 注释 1.1 注释概述 1.2 注释分类 1.3 示例 2. 关键字 2.1 关键字概述 2.2 关键字的特点 3. 常量 3.1 常量的概述 3.2 常量分类 以上常量除了空常量都是可以直接输 ...

  8. Java基础之编程语法(二)

    1.常量: 整型:整数,4个字节. 长整型:整数,8个字节.以L结尾. 单精度浮点数:小数,4个字节.以F结尾. 双精度浮点数:小数,8个字节. 布尔:只有两个值,真(true)或假(false),1 ...

  9. Java基础之编程语法(一)

    1.基本格式 所有Java代码都应该在一个class中. Java是严格区分大小写的. Java是一种自由格式的语言.Java代码分为结构定义语句和功能执行语句,功能执行语句最后必须以分号结束. 2. ...

随机推荐

  1. go 命令

    go build go build,是我们非常常用的命令,它可以启动编译,把我们的包和相关的依赖编译成一个可执行的文件. go help build 帮助命令 go build go build . ...

  2. django-rest-framework-jwt

    官网文档:http://getblimp.github.io/django-rest-framework-jwt/ GitHub:https://github.com/GetBlimp/django- ...

  3. Dev-Tips

    186 Chrome DevTools: How to use Logpoints for quicker JavaScript debugging You can use the new Logpo ...

  4. windows安装gitblit服务端

    由于windows下没有gitlab之类的工具,只有很久没有更新的gitblit 下载Gitblit, 下载地址:http://www.gitblit.com/ 很长时间没有更新了,在没有linux环 ...

  5. 谈一谈Elasticsearch的集群部署

      Elasticsearch天生就支持分布式部署,通过集群部署可以提高系统的可用性.本文重点谈一谈Elasticsearch的集群节点相关问题,搞清楚这些是进行Elasticsearch集群部署和拓 ...

  6. HDU 1015(字符运算 **)

    题意是在一段大写英文字符中找出 5 个字符通过代入公式运算得到目标值,如有多组字符满足题意,则输出字典序最大的一组,否则输出 no solution. 应该是用深搜做的,但是直接暴力也过了……(应该没 ...

  7. 【c++】编译器为我们实现了几个类成员函数?

    #include <cassert> #include <complex> #include <iostream> class Empty{}; Empty e; ...

  8. vue使用vue-awesome-swiper及一些问题

    vue-awesome-swiper是基于swiper的一个轮播图插件,使用非常方便. 首先安装下 npm install vue-awesome-swiper --save 然后在入口文件main. ...

  9. Scrapy基础02

    一.start_requests def start_requests(self): cls = self.__class__ if method_is_overridden(cls, Spider, ...

  10. Sliverlight常见错误集锦

    1. 使用GridSplitter时候(参考),出现如下错误 C# 中的错误Error 2 The type 'sp:GridSplitter' was not found. Verify…… 对程序 ...