黑马程序员-java基础-java基础语法1

------- android培训、java培训、期待与您交流! ---------- 

02.01 关键字的概述和使用

关键字概述:被Java语言赋予特定含义的单词

关键字特点:组成关键字的字母全部小写

关键字注意事项:goto和const作为保留字存在,目前并不使用,类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

保留字:在JDK的新版本中可能提升为关键字

02.02 标识符的概述和组成规则

标识符概述:就是给类,接口,方法,变量等起名字时使用的字符序列

组成规则:英文大小写字母、数字字符、$和_

注意事项:

1.不能以数字开头

2.不能是Java中的关键字

3.严格区分大小写

02.03 标识符中常见的命名规则

常见命名规则要求:见名知意

包:全部小写,多级包时用.隔开

类或者接口:一个单词时首字母大写,多个单词时每个单词的首字母大写

方法和变量:一个单词时首字母小写,多个单词时从第二个单词开始每个首字母大写

常量:全部大写,多个单词用_隔开

02.04注释概述及其分类

注释概述:用于解释说明程序的文字

Java中注释分类格式

单行注释:格式: //  注释文字

多行注释:格式: /*  注释文字  */

文档注释:格式:/** 注释文字  */

1.对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。

2.对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

02.05 HelloWorld案例加入注释版

例:

 1 /*
 2 需求:写一个程序,在控制台输出HelloWorld
 3 分析:
 4     1.写一个java程序,首先定义类。
 5     2.程序要想能够被jvm调用,必须定义main方法。
 6     3.程序要想有输出结果,必须用输出语句。
 7
 8 实现:
 9     1.定义类用的是class关键字,后面跟的是类名
10     2.main方法基本格式:public static void main(String[] args)
11     3.输出语句基本格式:System.out.println("helloworld");
12
13 */
14 //helloworld案例
15 class Demo
16 {
17    //main方法
18    public static void main(String[] args)
19    {
20      //输出语句
21      System.out.println("helloworld");
22    }
23 }

02.06 注释的作用

1.解释说明程序,提高程序的阅读性

2.可以帮助我们调试程序

02.07 常量的概述和使用

常量概述:在程序执行的过程中其值不可以发生改变

Java中常量分类:字面值常量和自定义常量

字面值常量:

1.字符串常量:用双引号括起来的内容  例: "helloworld"

2.整数常量:  所有整数  例:12,23

3.小数常量:  所有小数  例:12.34,56.78

4.字符常量:  用单引号括起来的内容  例: ‘a‘、‘A‘、‘0‘

5.布尔常量:  只有true和false两个值

6.空常量:null

02.08 进制概述以及二进制,八进制,十六进制

Java针对整数常量提供了4种表现形式:二进制、八进制、十进制、十六进制

进制概述:进制就是进位制,是人们规定的一种进位方法。

对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。

二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。

换算:

1byte(字节) = 8 bit(二进制位)

1K = 1024byte

规律,进制越大,表现形式越短。

02.09 不同进制数据的表现形式

二进制:0、1,满2进1,用0b开头表示

八进制:0~7,满8进1,用0开头表示

十进制:0~9,满10进1,整数默认是十进制的

十六进制:0~9、A~F,满16进1,用0x开头表示

任何数据在计算机中都是以二进制的形式存在的

02.10 任意进制到十进制的转换

二进制:110      转为十进制:1*22 + 1*21 + 1*20 = 6

八进制:110      转为十进制:1*82 + 1*81 + 1*80 = 72

十六进制:110    转为十进制:1*162 + 1*161 + 1*160 = 272

02.11 任意进制到十进制的练习

0b10101   转为十进制:1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 21

0123      转为十进制:1*82 + 2*81 + 3*80 = 83

0x3C      转为十进制:3*161 + 12*160 = 60

02.12 十进制到任意进制的转换    

十进制:56  转为二进制:

56 / 2 = 28...0

28 / 2 = 14...0

14 / 2 = 7 ...0

 7 / 2 = 3 ...1

 3 / 2 = 1 ...1

 1 / 2 = 0 ...1

将余数从下到上组合,即0b 111000

十进制:56  转为八进制:

56 / 8 = 7...0

7 / 8 = 0...7

将余数从下到上组合,即0 70

十进制:56  转为十六进制:

56 / 16 = 3...8

 3 / 16 = 0...3

将余数从下到上组合,即0x 38

02.13 十进制到任意进制的练习

将十进制的52分别转为二进制、八进制、十六进制

十进制:52  转为二进制:0b 110100

52 / 2 = 26...0

26 / 2 = 13...0

13 / 2 = 6 ...1

 6 / 2 = 3 ...0

 3 / 2 = 1 ...1

 1 / 2 = 0 ...1

 

十进制:52  转为八进制:0 64

52 / 8 = 6...4

6 / 8 = 0...6

 

十进制:52  转为十六进制:0x 34

52 / 16 = 3...4

 3 / 16 = 0...3

02.14 快速的进制转换法 

十进制和二进制的快速转换

8421码:

1    1    1    1    1    1    1    1

128  64   32   16   8    4    2    1

例:

100转成二进制:0b 01100100

101101转成十进制:32+8+4+1 = 45

二进制和八进制,十六进制转换

1.以十进制作为桥梁

2.二进制转八进制:二进制转八进制从低位到高位每三位一组,不足高位补零

例:100100=(100)(100)=0 44

3.二进制转十六进制:二进制转十六进制从低位到高位每四位一组,不足高位补零

例:100100=(0010)(0100)=0x 24

02.15 原码反码补码

有符号数据表示法:在计算机内,有符号数有3种表示法:原码、反码和补码。

所有数据的运算都是采用补码进行的。

原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

例:

7的原码:0 0000111

7的反码:0 0000111

7的补码:0 0000111

 

-7的原码:1 0000111

-7的反码:1 1111000(在原码的基础上除符号位按位取反)

-7的补码:1 1111001(反码末位加1)

02.16 原码反码补码的练习

已知某数的原码为10110100,求其补码和反码

原码:1 0110100

反码:1 1001011

补码:1 1001100

已知某数的补码为11101110,求其原码

补码:1 1101110

反码:1 1101101(补码末位减1)

原码:1 0010010(按位取反) 

02.17 变量的概述及格式 

变量概述:在程序执行的过程中,其值在某个范围内可以发生改变的量

变量定义格式:数据类型变量名 = 初始化值;

02.18 数据类型的概述和分类

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间

 

02.19 定义不同数据类型的变量

例:

 1 //定义一个字节变量
 2 byte b = 10;
 3
 4 //定义一个短整型变量
 5 short s = 100;
 6
 7 //定义一个整型变量
 8 int i = 1000;
 9
10 //定义一个长整型变量,后缀加l或L标记
11 long l = 1000000000000L;
12
13 //定义一个浮点变量,单精度浮点数后缀加f或F标记
14 float f = 12.34F;
15
16 //定义字符变量
17 char ch = ‘a‘;
18
19 //定义布尔变量
20 boolean flag = true; 

02.20 使用变量的注意事项

使用变量注意事项:

作用域:变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。

初始化值:没有初始化值不能直接使用

在一行上建议只定义一个变量,可以定义多个,但是不建议 

02.21 数据类型转换之默认转换

boolean类型不能转换为其他的数据类型

默认转换:byte,short,char→int→long→float→double

byte,short,char相互之间不转换,他们参与运算首先转换为int类型

02.22 不同数据类型变量参与运算解释

例:

1 byte a = 3;
2 int b = 4;
3 byte c = a + b;//错误
4 int d = a + b; //正确

解释:byte类型的数据参与运算会被默认提升为int 型,a + b的结果为int型,不能赋值给byte型的c

02.23 数据类型转换之强制转换

强制转换

目标类型变量名=(目标类型)(被转换的数据);

例:

1 byte a = 3;
2 int b = 4;
3 byte c = (byte)(a + b);

上条语句表示将a + b的结果int型的前三个字节抛弃,保留最后一个字节赋给c

02.24 强制转换的思考题

1.下面的赋值有没有问题

double d = 12.345;

float f = d;

答:有问题,不能将double类型的d赋给float型的f。

需强制转换:float f = (float)d;

2.下面的定义有没有区别?

float f1 = (float)12.345;

float f2 = 12.345F;

答:有区别,f1是通过double类型强转到float类型。而f2本身就是float类型。

02.25 变量相加和常量相加的区别面试题

byte b1 = 3,b2 = 4,b;

b = b1 + b2;//编译失败,变量,先将类型提升,b1+b2的结果为int型

b = 3 + 4;  //正确,常量,先计算结果,看是否在byte范围内,在就不报错

02.26 强制转换数据溢出后的结果计算

byte b = 130;有没有问题?如果想让赋值正确该怎么做?结果是多少?

答:有问题,130超出byte范围,可以使用强制转换byte b = (byte)130;

结果:

int型130原码:00000000 00000000 00000000 10000010

int型130补码:00000000 00000000 00000000 10000010

强制转换后丢弃高三位结果为: 10000010

补码:1 0000010

反码:1 0000001

原码:1 1111110→结果为十进制-126

02.27 字符数据参与运算

System.out.println(‘a‘); //a

System.out.println(‘a‘+1); //98,字符a参与运算时使用的是ASCII码表中对应的97 

02.28 字符串参与运算

System.out.println(‘a‘+1+"hello"); //98hello

System.out.println("hello"+‘a‘+1); //helloa1

System.out.println("5+5="+5+5); //5+5=55

System.out.println(5+5+"=5+5"); //10=5+5 

时间: 2024-10-10 22:42:22

黑马程序员-java基础-java基础语法1的相关文章

黑马程序员——I/O流基础知识

I/O流 Io流 代表有能力产生数据的数据源对象或者有能力接收对象的数据接收端对象.字节流和字符流.中文字符也转编码表,jbk2万多中文字.unicode全世界的字符收录.乱码,两种不同形式的编码表.字符流里面的对象融合了编码表,以便别人使用的使用用你指定的编码方式. 基类:读和写~ 字节流 InputStream,OutputStream 字符流 Reader,Writer Writer 主力方法是writer().既然IO流是操作数据的,而数据的最常见体现形式是:文件. 需求:准备在硬盘上创

黑马程序员_C语言总结-基础部分

C语言基础 1.C语言的关键字 1>关键字就是C语言提供的有特殊含义的符号,也称为保留字,C语言中一共有32个关键字,这些关键字都有自己的含义 例如:int double float if  else switch for 等等 2.标示符的概念: 1>标示符就是在程序中自定义的一些名称,比如函数名,变量名,结构体名等等这些都是标示符 2>命名规则: 1>只能由英文字母的大小写和数字以及_下划线组成,且首字母必须为字母或者下划线_ 2>在C语言中是严格区分大小写的,比如if是

黑马程序员   两道java面试题

1.List,Set,Map是否都继承了Collection接口?  List,Map比较常用:List是通过下标来访问元素,Map是通过键值进行访问元素.应该不会同时都实现了Collection接口.  Collection是一个什么概念?还有Set在java中是怎样定义的?他是通过下标来访问元素还是通过键值来访问元素?两者谁继承了Collection接口呢?或者有没有可能两者都继承了Collection接口?时间不多了,我是这样写的:  Set,Map实现了Collection接口.而Lis

黑马程序员 【】java学习之路——TCP(三)客户端上传文件到服务器

------- <a href="http://www.itheima.com" target="blank">android培训</a>.<a href="http://www.itheima.com" target="blank">java培训</a>.期待与您交流! ---------- import java.io.*; import java.net.*; class

黑马程序员_Java异常 Java常用库类

Java异常 1,异常的基本概念 异常是导致程序中断运行的一种指令流,它是在运行时期发生的不正常的情况,在Java中,一切的异常都秉着面向对象的设计思想,所有的异常都是以对象和类的形式存在的. 2,异常类的继承结构 在整个Java的异常结构中,实际上有两个最常用的类,Exception和Error,这两个类分别是Throwable的子类 Exception:一般表示的是程序中出现的问题,可以直接使用try....catch处理 Error:一般之的是JVM的错误,程序中无法处理. 3,Java的

黑马程序员:从零基础到精通的前端学习路线

随着互联网的深入发展,前端开发工程师一跃成为市场上非常抢手的人才.很多同学,包括以前做UI的.Java的.或者对于IT完全零基础的同学都想学习前端.下图是网上流传甚广的一张前端学习思维导图,很多初学者表示看到这些密密麻麻的知识点就已经晕了.确实,前端是一门涵盖面很广的学科.但是想学前端的你也不用慌张,内容虽多但有迹可循,只要循序渐进就不怕学不好前端! 那么前端开发到底需要学什么?应该怎么学?接下来黑马程序员前端学院教你如何从零基础学习前端. 一.前端开发入门 在入门阶段,你首先要学会最基本的技能

黑马程序员_ C语言基础(一)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 开发过程: 编写->编译(只编译源文件,编译成*.o  只会检测语法是否合理,不会检测函数是否存在)->链接(将所有相关的.o文件和C函数库整合成可执行文件  会检测函数是否定义)->运行 第一部分: 1.预处理指令:在编译之前执行的指令(eg:include <stdio.h>). 注:系统自带文件用< >,自己写的用"".( eg:incl

黑马程序员_ C语言基础(二)

概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): 1.Hello World 2.运行过程 3.数据类型 4.运算符 5.常用函数 Hello World 既然是IOS开发系列首先看一下在Mac OS X中的C的运行 打开Xcode 选择命令行程序 填写项目名称并选择使用C语言 选择保存目录 自动生成如下代码 OK,在Xcode上我们编写自己的程序如下 // // main.c // C语言基础 // // Created by Kenshin Cui on 14-7-1

黑马程序员——XML解析---java中XML的四种解析方式

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- XML是一种通用的数据交换格式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便.XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已. XML的解析方式分为四种:1.DOM解析:2.SAX解析:3.JDOM解析:4.DOM4J解析.其中前两种属于基础方法,是官方提供的平台无关的解析方式:后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于jav

黑马程序员--c基础--强处理指令

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.强处理指令:是在程序编译前执行的命令 2.强处理指令包括:宏定义(或带参数的宏定义),条件编译,文件包含 a.宏定义: 作用:将define关键字后的表达式替换成第二个表达式,不参与任何计算,只负责替换 定义:#define 表达式  值    (所有的宏定义都以#开头) 作用域:默认从定义开始到文件结尾,除非有#undef b.带参数的宏定义: 定义:#define 函数((参数1)(参