首页 > 编程语言 > 详细

java基础

时间:2019-12-20 23:16:43      阅读:108      评论:0      收藏:0      [点我收藏+]

markdown格式还没调好。凑合看吧,后续会调整

1.Java的工作方式、环境变量、编译、标识符

Java工作方式:

    先编译(.class),再解释执行
编译命令:在放java文件的目录下       javac   文件名(.java) ---------->  将文件里的类生成.class文件
运行命令:在放.class文件目录下          java  类名       --------->   运行这个类

重量级名词:

JVM:java虚拟机,屏蔽操作系统差异,统一编程标准
JDK: JVM + 编译器 + 解释器 + 工具 + 类库
JRE: JVM + 解释器

环境变量:

JAVA_HOME : 是安装jdk的安装文件完整路径,例:C:\Program Files\Java\jdk1.8.0_181
Path:java工具的加载路径(C:\Program Files\Java\jdk1.8.0_181\bin)
CLASSPATH:加载要运行时的类文件的目录,例:如果是当前目录就填入”.”;

一个java文件内最多有一个public修饰的公开类,且这个类的类名应与源文件名一致
带包编译:javac 包名(可以是多个包).源文件名 例如:javac p1.p2.p3.hello.java (包都存在)
Javac -d 包名.源文件名 例如:javac –d p1.p2.p3.hello.java (包不全,-d自动补全包)

Java程序基本结构:

package     0 – 1 个
import      0 – n 个
class           1 – n 个   公开类只有一个

注释:被注释的字符串将不被编译运行

    //单行注释                  快捷键:ctrl + /  再按一次取消注释

    /* */  多行注释             快捷键:Ctrl + shift + /   再按Ctrl + shift + \ 取消多行注释

    /**
    *     多行注释配合javadoc工具生成文档   用法 --------> Javadoc  -d  doc  源文件.java
    */

标识符:

保留字   (goto、const)、true、false、null
标识符没有长度限制  例如:int weruhsaiodufhpashdf…asdf = 123;   
标识符习惯:
类名标识符:单词首字母大写 (例如:class  Book)
变量标识符:单词首字母小写,后面的每个单词首字母大写 (例如:int priceOfBook)
包名标识符:全部小写 (例如:package  com.zzu.one)
常量名标识符:全部大写 (例如: final int A = 12; )

2.数据的基本类型、进制

byte        1B      -128 -- 127
short       2B      -32768 -- 32767
int     4B      -2147483648 – 2147483647  整数默认为int类型
    int i = 1;
    int j=0xA2234;//十六进制赋值 //可以赋值八进制、二进制(jdk7.0)
long        8B      -9223372036854775808 – 9223372036854775807  例如:long x =30_000L;分隔符”_”
float       4B      符号位1,指数位8,尾数位23      例如:1.3e7 = 1.3* 107 F;
double  8B      符号位1,指数位11,尾数为52      例如:1.3e7 = 1.3* 107
char        2B      阿斯克码值:0 --- 65535
没有符号位
‘A’ ---->  65;
char c =’A’;  是’A’
char c =65;是’A’
char c=‘\u0041’;是A  是十六进制的Unicode的编码方式

c++;   是c = ’B’
c+=1;  是c = ’B’
c = c + 1;  错误,1为int类型

Boolean 布尔类型 字面值true、false

进制: 八进制数    以0开头  例如:047
        二进制数    以0b开头 例如:0b1001
        十六进制    以0x开头 例如:ox4A34

位运算:
    &:按位求与
    |:按位求或
    ^:按位求异或(10—>1 , 01—>1 , 11—>0 , 00-->0)
    ~:按位求反
    <<:向左移一位                        高位补0
    <<<:无符号向左移动一位  

4 -数据类型转换
首先,对一个表达式判断顺序(范围最高的那个类),以 a + b 为例:
如果a或b有double类型,则表达式的类型就为double
否则,a或b若有float类型,则表达式的类型为float
否则,a或b若有long类型,则表达式的类型为long
否则,表达式值为int

低级到高级赋值,自动转化:例如:short s =12; int I = s;
高级到低级赋值,需要考虑丢失精度,必须强制转
    byte ---> char & int ---> long ---> float ---> double  (char 可以看成是特殊的int类型)
    例如:int I =2; 则byte = (int) I;

例子: byte a = 10;
        a++; (可以)
        a+=1; (可以)
        a = a +1; (不可以,1是一个int类型,必须强转)

5 -流程控制、for/switch
for( 初始条件;条件范围; 控制条件的改变) { } 是正确的,在条件确定的循环中“;”不能省略,若省去条件则是死循环,条件始终为true;

除了continue和break,还有指定名称跳出指定循环
    例如:
        name: for(…;…;…){
        for(…;…;…){
            break name; //直接跳出第一个循环
        }

}

switch 接受参数的几种类型:
switch(byte/short/int/char/(String是在jkd1.7版本后有的))
例如:switch(1); (switch(12.2)不行)
swhich(){
case 1:…
case 2:… 如果执行case 1,则后面的全部执行;如若执行了2,其后都要执行
case 3:… 直到break结束,case 只是相当于执行代码块的一个入口
default: …
}
6 -函数(方法)
函数作用:
减少代码冗余
方法用return 返回后,方法内其其后的所有代码将不会再执行
利用函数库,提高程序的可重用性
使程序更结构化、简单

定义方式:修饰符(public、static、private等,不分顺序)+ 返回值类型(无返回void、其他返回类型(如int)) + 方法名(参数表){ 代码实现部分 }

7 -数组
int a[] 可以
int[] a 可以
初始化(赋值): a = new int[3];

int [] a = {2,3,4,5}; //定义长度为4 的数组
String[] c= new String[2];//定义了长度为2的数组,默认值都为null

数组名a存的是数组的 地址,而a[0] 存的是第一个元素的值;

①数组拷贝:System.arraycopy(src, 0, dest, 0, length);
System.arraycopy(原数组,原数组起始位置,目标数组,目标数组接受拷贝的起始位置,原数组要复制的
长度)

用法:
int[] a = {2,4,5};
int[] b = new int[a.length * 2];
System.arraycopy(a, 0, b, 0, a.length);

②数组拷贝:Arrays.copyOf(src, newlength);
    Arrays.copyOf(源数组, 新数组的长度);

    用法:
        int a = {3,5,6};
        int b = Arrays.copyOf(a, a.length * 2);

8 -方法重载
重载条件:参数表不同(参数个数不同、参数类型不同、参数类型排列不同),对返回值不作要求,与形参的名字无关。
例如:public void f()
Public void f(double d)
Public void f(double d , int i)
Public void f(int t , double d)
方法重载的好处:让对象方法有参数表的不同所造成的差异对用户屏蔽

由编译器根据实参来匹配相应的方法
9 -对象构造、构造方法
对象构造:类名 引用名 = new 类名(构造参数表)
引用名.属性 或 引用名.方法() ---> 访问对象的属性或方法

1、分配空间(根据成员属性)---> 属性被赋默认值
(不考虑继承,若有继承关系应先递归创建父类对象,注意静态代码块加载顺序)
2、初始化属性 ---> 属性被赋初始值 (声明过程)
3、调用构造方法 ---> 属性被再次赋值
注意:如果一个类中没有定义任何构造方法,则系统提供默认公开无参构造;如果类中写了一个构造方法,则系统不会调用默认构造方法

构造方法:是特殊的方法,不能被继承
1、 声明没有返回值类型,是区分其与普通方法的唯一标志
2、 方法名和类名相同
3、 不允许直接调用,在对象构造的过程中自动调用一次
注意:当程序员自己定义构造方法后,默认无参将不会被调用(最好把无参也写了,以便类继承)
10 -Java中的变量按照数据类型划分
主要有两类:
1、基本类型:byte(B)、short(2B)、int(4B)、long(8B)、float(4B)、double(8B)、char(2B)(char是特殊的int,字符以阿斯克码值存储)、boolean
储存值:存储的是数值,当传参时传递的实参

2、引用类型:例如,String(String存的变量是调用了其重载的方法)、以及其他自定义的类类型等
   储存值:存对象地址,当传参时传递的是对象地址

java基础

原文:https://www.cnblogs.com/linanana/p/12075111.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!