文章目录
一、Java基础
[1] .变量—数据类型变量名=值;
1.数据类型:
1.基本数据类型:
byte[1字节] short[2字节] int[4字节] 1ong[8字节] float [4字节] doub1e[8字节] boolean[1字节] char [2个字节]
2.引用数据类型.类接口枚举数组
变量名: —命名规则
1.由字母数字下划线_美元符$组成
2.不能以数字开头
3.不能使用java的关键字。
4.习惯:见名知意类名接口名每个单词首字母大写。
方法变量名第一个单词的首字母小写其他单词的首字母大写. [studentAge]
常量所有字母全大写。
2.运算符:
1.算术运算符。+, -,, /, %,++[前(先+1在运算)后 [先运算再+1],–.
例子: int i=2; int C=++i2+1; sout(c==) sout(i==)
例子: int i=2; sout(i++);
2.关系运算符。>,>=,<,<=,==,!= 得到的结果-定是boolean值 。
3.逻辑运算符。连接多 个关系运算的。&&[这两个关系运 算符得到的结果都为true是才为true] II [两个关系运算符只要有一 -个为true,就是true] !
4.赋值运算符。=,+=,-=,=,/=,%=
例子: int a=2; int b=2; b=a+1; b=b*(a+1) sout(b)
5.位运算符[二进制]。&,1,^,>>.<<.
例子:int a=1; int b=2; int c=a&b
6.三目运算符。
条件语句?表达式1:表达式2:
3.控制语句
3.1 if语句
代码如下(示例):
if(条件){}
if(条件){}else{}
if(条件){}else if(条件){} ...else{}
switch(表达式){
case
值1:
break;
case
值2:
break;
case
值3:
break;
default:
break;
//每一个case的值不能重复
//default 找不到匹配的case时执行default的语句
//breake执行完对应的case后 跳出switch语句如果没有使用break则找到匹配的case后会把后面所有的语句都执行。
3.2 while语句
代码如下(示例):
while(条件){//条件是boolean值。
}
例子:
int sum = 0;
int i = 1;
while(i<=100){
sum+=i;
i++;
}
System.out.println("sum="+i);
do{
}
while(条件)
3.3 for语句
代码如下(示例):
for(初始值;条件;变化){
初始值只会被执行一次
}
//1·100的和
public class Test {
public static void main(String[] args) {
//1~100的和
int sum = 0;
for (int i=0;i<=100;i++){
sum+=i;
}
System.out.println(sum);
}
}
3.4 数组
数据类型 [ ] 变量名 = new 数据类型[长度];
数据类型 [ ] 变量名 = {值,值,值,值};
代码如下(示例):
public class Test {
public static void main(String[] args) {
String[] arr = new String[3];
arr[0]="xxx";
arr[1]="yyy";
//根据下标获取数组中每个元素的值
System.out.println(arr[0]);
System.out.println(arr.length);
for (int i = 0; i < arr.length ; i++) {
System.out.println(arr[i]);
}
System.out.println("=========");
for (String b:arr){//无序且没有下标
System.out.println(b);
}
}
}
3.5 冒泡排序
代码如下(示例):
public class Test {
public static void main(String[] args) {
int arr[] = {2,3,4,65,32,56};
//选择排序
for (int i = 0;i< arr.length;i++){//排序的次数
for (int j = 0; j < arr.length ; j++) {
if (arr[i]>arr[j]){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
for (int a:arr){
System.out.println(a+"\t");
}
}
}
二、JAVA面向对象
1.类和对象
类:具有相同属性和行为的一组对象的集合。抽象的概念。
对象 :万事万物皆为对象。具体存在的实物。
2.如何定义类
代码如下(示例):
public class 类名{
//成员变量;
//成员方法;
}
2.1 如何根据类创建对象
类名 对象名 = new 类名();
2.2 对象如何调用类中的成员
对象名.成员变量;
对象名.成员方法(实参);
3.三大特性
- 封装:把类中成员使用private进行封装,使外界无法之间调用。
一般封装属性,并且生成getter和setter方法。 - 继承:一个子类继承父类中的成员 extends ------
public class 子类名 extends 父类名{
}
Overload重载 和 OverRide重写
- overload:在同一个类中,出现方法名相同 参数列表不同的方法。不考虑返回类型。这些方法就是反复重载。。
- override:在父类和子类之间,子类中出现了和父类中方法名一样,参数列表一样。返回值类型一样。访问修饰符不能小于父类方法的访问修饰符。抛出异常不能大于父类中,子类中出现的这种方法就是方法重写。
访问修饰符:public:同一个工程下都可以访问
protected:同包或者不同包下的子类访问
默认:同包访问
private:同类访问
- 多态:一个对象具有多种形态
父类声明 对象名 = new 子类对象();//向上转型
Father father = new son();
//向上转型:能调用那些方法看=左边,实际执行哪些方法看=右边
父类.方法();//调用的是子类的方法
子类声明 对象名 = new 父类对象();//向下转型
Son son = (Son) father();//向下转型
4.抽象类和接口
1.抽象类:只能被继承不能被实例化对象。抽象类中有构造方法,抽象类中可以有非抽象方法。抽象类中的属性可以是普通属性也可以是静态属性。
2.接口:可以被多个实现,没有构造方法,全是抽象方法(jdk8后出现了默认方法和静态方法)
5.异常处理
代码如下(示例):
try{
}catch(异常类型 对象){}
throws 抛出异常 ----->加载方法参数的后面 谁调用该方法
6.集合
Collection
List:有序 可重复
ArrayList:底层数组:查询快 缺点:前提不是尾部元素 插入和删除慢
LinkedList:底层链表 :查询慢 优点:插入和删除快
Set:无序 不重复
HashSet:底层是按照hash表执行 。先按照hashcode表进行比对如果hash相同,则按照equals方法对比,如果equals也相同则视为同一个元素。
TreeSet:底层树形结构 元素排好序的。
LinkedHashSet:排好序的 按照添加的顺序
** Map**
HashMap:原理:map.put(keyvalue); map.get(key);
数组+链表+红黑树
总结
以上就是今天要讲的内容,本文仅仅简单介绍了JAVA的基础。