常用的命令行方式:
------------------------------------------------------
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培训、期待与您交流! ----------------------