zoukankan      html  css  js  c++  java
  • 1.java基础

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

    ##1.Java的工作方式、环境变量、编译、标识符 ###Java工作方式: 先编译(.class),再解释执行 编译命令:在放java文件的目录下 javac 文件名(.java) ----------> 将文件里的类生成.class文件 运行命令:在放.class文件目录下 java 类名 ---------> 运行这个类 ###重量级名词: JVM:java虚拟机,屏蔽操作系统差异,统一编程标准 JDK: JVM + 编译器 + 解释器 + 工具 + 类库 JRE: JVM + 解释器

    ###环境变量: JAVA_HOME : 是安装jdk的安装文件完整路径,例:C:Program FilesJavajdk1.8.0_181 Path:java工具的加载路径(C:Program FilesJavajdk1.8.0_181in) 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存的变量是调用了其重载的方法)、以及其他自定义的类类型等
       储存值:存对象地址,当传参时传递的是对象地址
    
  • 相关阅读:
    sphinx的配置和管理
    linux 性能分析
    17个非常有用的PHP类和库
    webkit webApp 开发技术要点总结
    国外十大流行的服务器监控工具
    lnmp环境搭建,超详细教程
    nginx在window下的服务安装
    HBase源代码阅读与理解
    找出1到N中缺少的數?
    插入排序 (insertion_sort)與 合並排序 (mergesort)
  • 原文地址:https://www.cnblogs.com/linanana/p/12075111.html
Copyright © 2011-2022 走看看