黑马程序员_java基础一

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------java概述

常用的命令行方式:


------------------------------------------------------

1.dir 列出当前目录下的文件以及文件夹

2.md 创建目录

3.rd 删除目录

4.cd 进入指定目录

5.cd..退回到上一级目录

6.cd/ 退回到根目录

7.del 删除文件

8.exit 退出dos命令行

------------------------------------------------------------

9.ipconfig 查IP地址

10. netstat -a查看开启哪些端口

11.netstat -n查看端口网络连接情况

12.nslookup www.baidu.com 可以查域名对应的ip地址

---------------------------------------------------------------------------

(顺便把最近学的mysql结构化查询语言总结一下)

net start mysql打开mysql服务

以下sql语句默认是进入到mysql命令行界面
创建一个名称为mydb1的数据库。
create database mydb1;

查看所有数据库
show databases;

创建一个使用utf-8字符集的mydb2数据库。
create database mydb2 character set utf8;

创建一个使用utf-8字符集,并带校对规则的mydb3数据库。
create database mydb3 character set utf8 collate utf8_general_ci;

显示库的创建信息
show create database mydb3;

删除前面创建的mydb1数据库
drop database mydb1;

查看服务器中的数据库,并把其中某一个库的字符集修改为gbk;
alter database mydb2 character set gbk;
show create database mydb2;

备份库
1 退出mysql客户端:quit
2 在windows命令行窗口中下执行:mysqldump -uroot -p mydb1>c:\test.sql

删除库:drop database mydb1;

恢复库(1):
1 创建库:create database mydb1;
2 source c:\test.sql  (通过执行脚本文件实现)
恢复库(2):mysql -uroot -p mydb1<c:\test.sql  (window命令)

查看库中所有表
show tables;

查看表的创建细节
show create table employee;

查看表的结构

desc employee;

解决写入中文乱码问题
show variables like 'chara%';
set character_set_client=gb2312;


显示中文乱码的解决方案
set character_set_results=gb2312;

名词解释


JRE(Java Runtime Environment Java运行环境)

JVM(JVM Java Virtual Machine Java虚拟机)

JDK(Java Development Kit Java开发工具包),包括了JVM和JRE。

现在把毕老师PPT的一张及java程序运行流程图贴在下面:


java语言基础

关于一些关键字的总结


1.final finally finalize 的区别

   final 用来声明属性,方法和类,分别表示属性只能被赋值一次值,方法不可以覆盖,类不可以继承。内部类只能访问被final修饰的局部变量
   finally是异常处理语句结构的一部分,即使有异常抛出或者没有异常抛出,总是会执行。

  finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收的对象的此方法,可以覆盖此方法提供垃圾收集的其他资源回收,例如关闭文件。

 

2.switch(表达式) 表达式允许传值的类型

1.6版本以前支持 byte,char,int,short,enum

1.7版本以后,在原来的基础上加了String

3.java的数据类型。

基本数据类型:

    整数类型 byte(8位),short(16位),int(32位),long(64位)

    浮点类型 float(32位),double(64位)

    字符类型 char(16位)

    布尔类型 boolean

引用数据类型:

   数组,类,接口

4.重载与重写的区别

重载(Overloading):在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。与返回值类型无关,只看参数列表。

//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}


重写(Overriding):子类重写父类已经存在的方法,要求返回类型,参数个数,参数类型全部相同。父类中的私有方法不可以被覆盖.
标识符

定义合法标识符规则:不能数字开头,字母或者下划线美元符号开头。不含有关键字。
注释

java有三种注释
1.单行注释
格式://注释文字
2.多行注释
格式:/* 注释文字*/
3.文档注释
格式:/** 注释文字*/。文档注释的注释内容可以被JDK提供的工具javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
自动类型提升和强制类型转换

        byte b = 3;
    int x = 4;
    x = x + b;//b会自动提升为int类型进行运算。

       
        byte b = 3;
//    b = (b + 4);//报错
    b = (byte) (b+4);//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。

结论是:
所有的byte型、short型和char的值将被提升到int型。


算术符

1.对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

2.面试题:int a;int b;在不利用第三方变量的情况下怎么交换两个数据。

答:

        int a=5;
    int b=9;
    a=a^b;
    b=a^b;
    a=a^b;
    System.out.println(a+"----"+b);


原理是:1 0 0 0 0 1 1    (a)

                0 1 1 1 0 0 0    (b)

--------------------------------异或

                1 1 1 1 0 1 1  

                0 1 1 1 0 0 0    (b)

--------------------------------异或
                1 0 0 0 0 1 1   (a)

也可以利用a^b^b=a这一个原理来加密数据。例如密钥是b,那么A方人员就可以用b来异或要加密的数据传给B方人员,B方人员知道密钥是b,那么将A传过来的数据再用b异或就可以得到原数据了。

3.“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

4.<<左移
3 << 2 = 12 ‐‐> 3*2*2=12
>>右移
3 >> 1 = 1 ‐‐> 3/2=1

System.out.println(4<<3);//4*2*2*2
System.out.println(8>>2);//8/2/2

5.break(跳出), continue(继续)
break语句:应用范围:选择结构和循环结构。

continue语句:应用于循环结构。

数组

1.一维二维数组实现格式:

public static void main(String[] args) {
	//一维数组第一种方法
	int[] arr=new int[10];
	//一维数组第二种
	int[] arr2=new int[]{1,3,6};
	int[] arr3={4,5,6};
	//二维数组第一种格式
	//定义了三个一维数组,每一个一维数组中有两个元素
	int[][]arr4=new int [3][2];
	System.out.println(arr4[2][0]);//打印结果为0
	//二维数组第二种格式
	//定义了3个一维数组,每个一维数组都是默认初始化值null
	int[][]arr5=new int[3][];
	System.out.println(arr5[2]);//打印结果为null
	//二维数组的第三种格式
	int[][]arr6={{1,2,3},{33},{44}};
}

2.栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。

  堆内存:1.数组和对象,通过new建立的实例都存放在堆内存中。

        2.每个实体都有内存地址值。

        3.实体中的变量都有默认初始化值。

        4.实体不再被使用,会在不确定的时间内被垃圾回收器回收。

3.获取最值(最大值,最小值):

	//获取最大值
	public static int getMax(int arr[]){
		int max=arr[0];
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]>max)
				max=arr[i];
		}
		return max;
	}
	//获取最小值
	public static int getMin(int arr[]){
		int min=0;
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]<arr[min])
				min=i;
		}
		return arr[min];
	}


4.选择排序:

5.冒泡排序:

//冒泡排序从小到大
public static void bubbleSort(int[] arr){
	for (int i = 0; i < arr.length-1; i++) {
		for (int j = 0; j < arr.length-i-1; j++) {
			if(arr[j]>arr[j+1]){
				int temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}		
		}
	}
}
//选择排序从小到大
public static void selectSort(int[] arr){
	for (int i = 0; i < arr.length-1; i++) {
		for (int j = i+1; j < arr.length; j++) {
			if(arr[i]>arr[j]){
				int temp=arr[j];
				arr[j]=arr[i];
				arr[i]=temp;
			}
		}
	}
}

面向对象

1.面向对象的特征:封装(encapsulatin),继承(inheritance),多态(polymorphism

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

多态:某一类事物的多种存在形式。

2.成员变量:

   成员变量定义在类中,在整个类中都可以被访问。

   成员变量随着对象的建立而建立,存在于对象所在的堆内存中。

   成员变量有默认初始化值。

3.局部变量:

   局部变量只定义在局部范围内,如函数内,语句内。

   局部变量存在于栈内存中。

   作用的范围结束,变量空间会自动释放。

   局部变量没有默认初始化值。、

4.Private(私有)关键字。用于修饰成员,成员变量和成员函数。

5.构造函数不可以写return语句。

6.this关键字

7.static关键字,修饰成员变量和成员函数。

  随着类的加载而加载

  优先于对象存在

  被所有对象所共享

  可以直接被类名调用

 注意:静态方法只能访问静态成员

       静态方法中不可以写this,super关键字

       主函数是静态的

继承

1.当父类中没有空参数的构造函数时,子类的构造函数 必须通过this或者super语句指定要访问的构造函数。

2.子类中所有的构造函数默认都会访问父类中空参数的构造函数。

3.抽象类和抽象方法必须用abstract关键字修饰,抽象方法只有方法声明,没有方法体,定义在抽象类中,抽象类不可以被实例化。

4.抽象类通过其子类实例化,而子类需要覆盖掉抽象类中所有的抽象方法后才可以创建对象,否则该子类也是抽象。

5.抽象类中是否有构造函数?有。抽象类是一个父类,要给子类提供实例的初始化

6.抽象关键字abstract不可以和哪些关键字共存?

final:被final修饰的类不能有子类。而被abstract修饰的类一定是一个父类。

private: 抽象类中的私有的抽象方法,不被子类所知,就无法被复写。而抽象方法出现的就是需要被复写。

static:如果static可以修饰抽象方法,那么连对象都省了,直接类名调用就可以了。可是抽象方法运行没意义。

7.抽象类中可不可以没有抽象方法?可以。

8.接口中的成员修饰符是固定的。成员变量:public static final 成员函数:public abstract

9.内部类访问外部类的成员,外部类访问内部类中成员。[代码]

10.内部类定义在成员位置上

11.内部类定义在局部位置上

12.throw与throws的区别

throws用于标识函数暴露出的异常。throw用于抛出异常对象。
thorws用在函数上,后面跟异常类名。throw用在函数内,后面跟异常对象。

13.finally代码块只有一种情况不会被执行。就是在之前执行了System.exit(0)。

14.异常的细节

RuntimeException以及其子类如果在函数中被throw抛出,可以不用在函数上声明。
一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子 类。如果父类抛出多个异常,那么重写(覆盖)方法必须抛出那些异常 的一个子集,不能抛出新的异常。



---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值