java基础知识

java关键字

数据类型:

Boolean(布尔型) int long short byte float double char class interface(接口)

流程控制:

if else do while for switch case default break continue return try (捕获异常) catch(处理异常) finally(有没有处理异常都执行)

修饰符:

public protected private final void static strictfp (严格 精确) abstract(抽象的) transient(短暂) synchronized(线程 同步) volatile(易失) native(本地)
访问权限 类 包 子类 其他包

public ∨ ∨ ∨ ∨ (对任何人都是可用的)

protect ∨ ∨ ∨ ×    (继承的类可以访问以及和private一样的权限)

default ∨ ∨ × ×    (包访问权限,即在整个包内均可被访问)

private ∨ × × ×    (除类型创建者和类型的内部方法之外的任何人都不能访问的元素)

动作:

package import(引入) throw(抛出一个异常对象) throws (声明一个异常对象 可能被抛出) extends(继承) implements(实现) this(本类) super(父类 超类) instanceof(实例) new

java运算符

JAVA的运算符,分为四类:

算数运算符、关系运算符、逻辑运算符、位运算符

算数运算符(9):+ - * / % ++ –

关系运算符(6):== != > >= < <=

逻辑运算符(6):&& || ! ^ & |

位运算符(7):& | ~ ^ >> << >>>;

1、 ++;–
++在前,先自加一再用
++在后,先用再自加一
–-在前,先自减一再用
–-在后,先用再自减一
package Test2;

public class OperatorDome2 {
public static void main(String[] args) {
int a = 8;
int b = ++a;//b=a+1
System.out.println("b: "+b);

int d = 8;
int c = d++;//c=d;d=d+1
System.out.println("c: "+c); }

}

得到b=9;c=8

2、=;+=;-=;*=;/=
package Test2;

public class OperatorDemo3 {
public static void main(String[] args) {
int a = 10;

a += 5;//a=a+5
System.out.println(“a:”+a);
a -= 5;//a=a-5
System.out.println(“a:”+a);
a = 5;//a=a5
System.out.println(“a:”+a);
a /=5;//a=a/5
System.out.println(“a:”+a);
//隐含了强制转换,“=”右边默认是int类型
//相当于 b = (b的类型)(b+1)
byte b = 1; b += 1;
System.out.println(“b:”+b); } }

注意:赋值运算符实际上隐含了强制转换

3、&&;||
&&和&
相同点:结果一样
不同点:&&有短路效果,若左边为flase,则右边不执行
&无论左边是true或flase,右边都会执行

||和|
相同点:结果一样
不同点:||有短路效果,若左边为true,则右边不执行
|无论左边是true或flase,右边都会执行

package Test2;

public class OperatorDemo6 {
public static void main(String[] args) {
int a = 3;
int b = 4;
int c = 5;

System.out.println((a>b)&&(a>c));//flase && flase
System.out.println((a<b)&&(a>c));//true && flase
System.out.println((a>b)&&(a<c));//flase && true
System.out.println((a<b)&&(a<c));//true && true
System.out.println("…");

System.out.println((a>b)||(a>c));//flase || flase
System.out.println((a<b)||(a>c));//true || flase
System.out.println((a>b)||(a<c));//flase || true
System.out.println((a<b)||(a<c));//true || true
System.out.println("…");

//&&与&的区别
int x = 6;
int y = 7;

System.out.println((x++>6)&(y++>7));
System.out.println(“x:”+x);
System.out.println(“y:”+y);

int x1 = 6;
int y1 = 7;
System.out.println((x1++>6)&&(y1++>7));
System.out.println(“x1:”+x1);
System.out.println(“y1:”+y1);
System.out.println("…");

//||与|的区别
int x2 = 6;
int y2 = 7; System.out.println((x2++>=6)|(y2++>=7));
System.out.println(“x2:”+x2);
System.out.println(“y2:”+y2);

int x3 = 6;
int y3 = 7;
System.out.println((x3++>=6)||(y3++>=7));
System.out.println(“x3:”+x3);
System.out.println(“y3:”+y3); System.out.println("…");
}
}

三元运算符

关系表达式?表达式1:表达式2
计算关系表达式的值看是true还是flase;
若是true则表达式1就是结果
若是flasez则表达式2就是结果
package Test2;

public class OperatorDemo7 {
public static void main(String[] args) {
int a = 3;
int b = 4;

int c = (a>b)?a:b;
System.out.println(“c:”+c); }

}

栈与队列

  1. 队列先进先出,栈先进后出

  2. 接口实现的异同
    队列和栈同属于Java合集框架,由Collcetion接口实现,队列由Queue接口实现,栈由List接口实现,

  3. 逻辑结构和存储结构的的异同
    他们的逻辑结构同为线性结构,存储结构为顺序存储结构或者链式存储结构

  4. 方法的异同
    他们同时含有绝大部分Collection接口中声明的方法,但同时两者各有扩展的方法,队列提供了四个操作头节点的方法

java.util.Queue

offer(element: E): boolean 插入一个元素到队列中
poll(): E 获取并移除队列的头元素,如果队列空则返回null
remove(): E 获取并移除队列头元素,如果队列空则抛出异常
peek(): E 获取但不移除队列头元素,如果队列为空则返回null
element(): E 获取但不移除队列头元素,如果队列为空则抛出异常
栈提供了对栈顶元素的操作以及在栈内搜索的方法

java.util.Vector

empty(): boolean 如果栈为空则返回真
peek(): E 返回栈中的顶部元素
pop(): E 返回并移除该栈中的顶部元素
push(o: E): E 增加一个新的元素到栈的顶部
search(o: Object): int 返回该栈中指定元素的位置
5. 对插入和删除操作的"限定"
栈是限定只能在表的一端进行插入和删除操作的线性表。队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。

  1. 遍历数据速度的异同
    栈只能从头部取数据,也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前后的一致性。
    队列基于地址指针进行遍历,而且可以从头或尾部开始遍历,无需开辟临时空间,速度要快的多。

  2. 应用场景的异同
    常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等。
    常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值