Java菜鸟逆袭之基础语法上

Java基础语法
回顾:
1. java特点 跨平台,自动垃圾回收,面向对象,安全性,开放性。
2. jvm,jre,jdk jvm:java虚拟机,jre java运行时环境,jdk:开发工具包,里面包含了jre
3. 设置环境变量 path—可执行文件的路径,classpath—jar包lib:为了寻找class文件,为了使用jdk自带的lib下面常用的类
4. 编写一段java程序,java程序都是从main方法开始运行。
5. 如何编译和运行 Hello.java javac.exe Hello.java java.exe Hello
1. 关键字
被编程语言赋予特定含义的单词叫做关键字。
关键字都是小写。
关键字:
用于定义数据类型的关键字
class interface byte short int
long float double char boolean
void
用于定义数据类型值的关键字
true false null
用于定义流程控制的关键字
if else switch case default
while do for break continue
return

用于定义访问权限修饰符的关键字
private protected public
用于定义类,函数,变量修饰符的关键字
abstract final static synchronized
用于定义类与类之间关系的关键字
extends implements
用于定义建立实例及引用实例,判断实例的关键字
new this super instanceof
用于异常处理的关键字
try catch finally throw throws
用于包的关键字
package import
其他修饰符关键字
native strictfp transient volatile assert

  1. 注释
    注释就是对代码的解释。给开发人员阅读的。
    单行注释// ctrl+/
    多行/*

*/
快捷键ctrl+shift+/
反注释ctrl+shift+\
javadoc注释/* /里面的注释将在生成文当时候出现
javadoc注释只能在类和方法上
javadoc命令可以抽取注释生成html文件
javadoc命令格式:
javadoc –d (生成到什么文件夹) ( 把谁生成doc文档)
例如:javadoc -d d:/doc HelloWorld.java 将doc文档生成到doc目录下。
Index.html

3.包(package import)
定义:按照某种逻辑将很多的类进行隔离。
更好的定位类,把相同功能的类分到一个包下面。是为了防止类同名而引入的一种机制。类似于文件夹。
注意包名不能用java,一般情况下会采用公司的简称,包名一定要小写。因为jdk里面已经有java包。可以观察下jdk文档下面包的基本结构。
使用包的规则:
(1)package语句必须作为Java文件的第一句非注释语句,放在Java文件的第一行。
(2)一个Java文件只能指定到一个包下,该文件中可以有多个类,但是只能有一个public类。
(3)同一个包中的类可以直接访问。
(4)不同包下的类的访问时,要引入包,引入规则是:import 父包名.子包名.类名;

包名一定要小写,一般情况下包名会采用你工作单位或者所读学校组织的名字简写。

4.jar命令
jar一般情况下用来压缩class文件。目的:1.保护代码 2。方便调用
jar打包 jar cvf jiami.jar HelloWorld.class将helloworld程序打包
如果一个目录下打包:jar cvf classes.jar com
Com是指某个包含class文件的目录。

如果将jar包做成可以运行的jar包,要求生成清单文件并修改manifest.mf:
Manifest-Version: 1.0
Main-Class: ui.JFrameMain
Class-Path: jtds-1.2.jar c3p0-0.9.1.2.jar
esri_mo20.jar esri_mo20res.jar jsde83_sdk.jar
解释一下:
Manifest-Version mf文件版本号,这行照抄
Main-Class 包含main函数的类,程序的入口
Class-Path 用到的一些包
注意:每行的“:”(冒号)用来分隔键值对。冒号后边一定要跟一个空格!!!
依赖的jar包之间也用空格分隔。

5.标示符(标识符)
标识符:就是给类,接口,方法,变量等起名字时使用的字符序列

组成规则:字母、数字、下划线、货币符号$,数字不能写在开头。

注意:标示符规范应做到望文生义,变量和类的起名准则是变量第一个字母小写,类名第一个字母大写。

当然也要注意缩写,名字太长不适合做变量,影响开发效率。如大学生英语成绩。

关键字不能用于标示符 如:class public static void package import
不能以数字开头。
类名首字母大写,如果类名有多个单词构成,每个单词首字母大写。
如果是变量,首字母小写,如果变量有多个单词构成,首字母小写,后面的单词首字母大写。
如果是常量,全部字母都大写。如果有多个单词构成,单词之间用_(下划线)隔开。
6.变量与字面值
变量定义:
类型(8种基本类型或者对象类型) 变量名称(标示符)=赋值
int a=0;
变量分为局部变量和属性(成员变量),其中局部变量一定要先初始化才能使用。
局部变量就是写在方法里面的变量。
成员变量就是写在类里面但是在方法之外。
变量基本类型:
基本数据类型8种和对象类型

整数类型:(byte,short,int,long)
byte字节类型–1,short短整型—2byte,int整型–4,long–8长整型
1byte=8bit 0,1 -128-127

扩展知识点:字节是衡量IO流量的基本单位,常用衡量单位有:1KB=1024B,1MB=1024KB,1GB=1024MB
1TB=1024GB
1PB=1024TB
1EB=1024PB
1ZB=1024EB
1YB=1024ZB
1DB=1024YB
1NB=1024DB

小常识:1.平时买的U盘使用的容量总比实际说的小。因为u盘是1000进的。
2.10M网速为何真实带宽差的太多。10mbit ps=10*1024*1024/8=1.31Mbyte/s

浮点数类型:float–4,单精度double—8 双精度
float f=1.3f; double d=1.3;
计算过程中可能会出现精度丢失,因为某些小数无法用二进制准确表示导致的。
1.1——————–
1——-1
0.1——–00001100110011……
注意浮点数计算精度丢失问题,分析原因是因为计算机使用二进制进行计算的,有些小数无法用有限的二进制为表示,出现无限循环,导致最终运算精度丢失,

可以用Java api里面的BigDecimal做处理
处理方式:double a=2.0;
double b=1.1;
System.out.println(BigDecimal.valueOf(a).subtract(BigDecimal.valueOf(b)).doubleValue());

字符类型:
定义:一个文字就是一个字符。
C语言一个字符几个字节? 1个byte Ascii
Java语言的一个字符由2个byte

char 一个文字 char c=’A’ char c=’烟’ char c=’’ 一个字符有几个字节组成?

韩语(你好):여보세요 왜 쓰다
日语:こんにちは

Unicode编码 万国码
Char c=65;
char c=’\u4f60’;
Unicode写法是:’\u’+十六进制组成的几位数字
如果用命令方式可以把本地的文字转成unicode形式:
C:\Users\chidianwei>native2ascii
你好
\u4f60\u597d
A
A

布尔类型:true,false
boolean b=true;

对象类型:除了8种基本类型之外的
类就是类型,是抽象的。
以类作为模板,形成具体的对象。
Class Student{

Main
Sum(int a,int b)

} //定义类

如何使用一个类创建一个对象?
HelloOracle h=new HelloOracle();
int c=h.sum(1, 1);
System.out.println(c);

类型转换(类型提升和强制转换)

1.类型变量赋值:
原则是等号左右两边类型要相同或者兼容。不然编译器报错。
比如float a=0.9;报错,原因java认为小数都是double型,但是却赋给了float。
允许一个范围小的类型赋值给一个范围大的类型。

2.自动类型提升:

-两个变量进行运算或者一个变量赋值给另一个变量,都可能产生类型提升。就强原则。
byte b=2;
int c=b+2;//两个变量进行运算最后的结果类型遵循就强原则

    byte b1=6;
    int d=b1+b;//两个byte类型进行运算得到的是int型

    double d1=2.8;
    double d2=d1/8+35;
    System.out.println(d2);//运算的时候遵循就强原则

    System.out.println(5/2);//两种相同类型运算得到的还是这个类型

3.强制类型转换:

但有可能导致运行时候报错。
int a=(int)1.5; a=1;导致数据精度丢失
Char a=(char)3.5 编译不会报错,但是根本不兼容,所以运行报错。
byte b=1;
b=(byte)(b+2);//强制类型转化就是在值得前面加上一对括号,括号里面写要转成什么类型,右边的不一定
//是一个具体值,也可以能是一个式子,需要打一对括号
int a=90;
char c=(char)(a+12);

    //注意,并不是所有的强制类型转化都是合理的,有些地方大家不要落入陷阱
    byte b2=(byte)9.8;

思考一个问题?
byte b=(byte)130;问b的值是多少? -126
局部变量定义和使用
局部变量就是定义在方法里面的变量。作用范围就是方法体。
注意:同一个作用域范围内的局部变量不能重名。
局部变量作用范围有两个:类方法中,方法里面的{}体中。出了大括号就失效。
局部变量如何使用?
1先定义后使用。
2先赋值,后使用。
3局部变量不能重命名。
局部变量的作用域其实就是最靠近它的那对大括号,出了大括号这个区域,变量失效。

7.表达式与运算符

赋值表达式 :
比如a=0就是代表一个赋值表达式,整个式子的值是0
Int a=0 这个式子以后,a的值是0,整个表达式的值等于最终a的值。
Int a=9;
a=(a=19);

四则运算符
+ - * / %
//四则运算
int a=9;
int b=8;
System.out.println(“a乘以b的值是:”+a*b);
System.out.println(“a除以b的值是:”+a/b);
System.out.println(“a除以b的的余数值是:”+a%b);
a=-9;
System.out.println(“a除以b的的余数值是:”+a%b);

赋值表达式可以结合四则运算付:
int a=9;
int b=8;
a+=b;//a=a+b a-=b *=,/=,%=
System.out.println(a);

相等运算符:
== !=
计算结果只可能有两个值:true,false
int a=9;
int b=8;
System.out.println(a!=b);//true
System.out.println(a==b);//false

移位运算符:
前提知识点1:计算机进制
 Java针对整数常量提供了4种表现形式
• 二进制
• 八进制
• 十进制
• 十六进制
 进制概述
进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制–X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
 不同进制的数据组成
• 二进制
• 由0,1组成。以0b开头
• 八进制
• 由0,1,…7组成。以0开头
• 十进制
• 由0,1,…9组成。整数默认是十进制的
• 十六进制
由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头

进制转换
二进制 0010—十进制:0*2的0次方+1*2的1次方+0*2的2次方+。。。
十进制 9—–二进制:
这里写图片描述

十进制和各种进制转换:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值