java语言基础

java语言基础

1.输入输出

2.注释
//单行
/* /多行
/
* 内容上方 回车 java doc注释 (文档)
3.关键字
volatile 保持内存可见性和防止指令重排序,防止多线程内存不同步
内存可见性:所有线程都能看到共享内存的最新状态

transition 让某些被修饰的成员属性变量不被序列化
transition int modCount;变量不被序列化

native 本地方法(访问c语言库)

strictfp 可应用于类 接口 或方法
让你的浮点运算更加精确,保障不同的硬件平台所执行的结果一致

循环 switch
continue 直接进行下一次循环
break 跳出下一次循环
switch可以解决事件流的跳转,这是if解决不了的
倒序循环,主要是如果集合的数量在循环的中途改变了,那么循环次数就会变,但是倒序循环不会发生这个问题

4.变量
访问符 功能符 类型 变量名=值
基本类型8种,对应引用类型(直接赋值+默认转换,转换方法=构造方法+valueof())
引用类型(其他全部都是引用类型,继承object类)
内存管理区别 基本类型放在栈里,引用类型的指针放在栈里,引用类型的内容放在堆里
访问符:public, private, 无访问符-friendly,protected
变量种类:
局部变量
实例变量
静态变量
静态常量
参数变量
5.解决问题能力
1.排除(百度筛选代码,代码筛选目标)
2.使用(脑补代码+结构,尝试)
3.异常(通过脑补+debug+输出,解决错误)
4.坚持(重试,重做)
6.运算符
i++ ++i
a=1?2:3
&& &之间关系

<<移位 用二进制完成运算,IP地址解析,图片过滤
优先级-加()
boolean 赋值运算 boolean b; b=a==1;将b赋值为true
7.转义符
" 加入” \n换行
8.类型转换
基本类型之间转换(字节补充 截取)
int a=12121;
byte=(byte)a;//结果89,字节截取,因为byte是4个字节
强制类型转换
byte d=(byte) a;(字节补充,截取)
student s=(student)obj;引用类型强制转换只是改称呼,改继承+接口

第二章
9.数组
定义
数据缓冲区
存取
arr[1]=21; int a=arr[2];
遍历
for(int i=0;i<arr.length;i++)快
for(int a:arr)遍历偏慢.慢三倍,但还是很快
多维 (容积为 每维相乘)
数组可以有255维
int arr[][]={{1,2},{3,4}}
for(int i=0;i>arr.lenght;i++){
for(int j=0;j>arr[i].lenght;j++){

}
}
for(int[] a:arr){//一维的每项为数组
for(int b:a){

}
}
工具
arrays类
排序(面试,自己整理)
快速排序>冒泡>选择>插入>一个数组

10.可变参数(必须为最后一个参数)
可变长参数必须放到参数最后面
public void add( int 。。。all) 可以一个参数不传,也可以传任意参数
new t1().add(12,3,5,444);//0长度开始
new t1().add();
11.面向对象
类,方法,属性创建和使用 //类实例。 类。
继承:多命名,代码复制 super this (构造方法转接)
封装:访问符public,setters getters
多态:方法重写-覆盖(上级行为内容的定制)
public String toString(){ //上级定义方法
return super.toString(); //调整部分
}
方法重载
public String toString()
public String toString(int a)
面向对象:
现实事物的思维,描述框架和功能
构造方法:
new 后面的方法,无返回信息

12.抽象类
抽象方法:只有描述,没有实现内容的方法 abstract
抽象类:由有抽象方法的和使用时必须重写内部方法的类
内部匿名类:对应外部不匿名类
public abstract class Inclass {
public static void main(String[] args) {
new Inclass() {
public void in() {
System.out.println(“这是内部匿名类”);
}
}.in();
t2 t = new t2();
t.toString();
}
static class t2 extends Inclass {//这里的外部不匿名类也要加上static,因为他是继承的static
@Override
public String toString() {
System.out.println(“外部不匿名类”);
return super.toString();
}
}
}

13.接口
核心:耦合度,把类绑定改成接口绑定
通知:事件处理,向外通知处理(电脑手机,网络管理类)
全部为抽象方法,默认方法
public interface t1{

dafault void ss(){//这是默认方法

}
}
可以设置静态常量
接口实现:
1.外部不匿名类,创建类,引用接口
2.内部匿名类,new 接口 new t1(){};
3.创建接口变量 t1 t=new t1(){};
4.函数式接口实现 lambda t1 t=()->{}

14.泛型(类,接口,方法)
ArrayList
泛型约束 ArrayList<? extends Numble>
class aa<T,D,F>{ }

15.集合
List集合 (可通过索引存取,按放置顺序摆放)
arraylist,vector,linklist(first,last)
add,remove,size,set,indexof

Set集合 内置顺讯排列,无索引,并且不能重复
hashset(根据hash值顺序) treeset(按大小摆,Comparable接口)
Map集合 键值对放置,通过key处理
hashmap,hashtable被ConcurrentHashMap(线程安全) 替代
put,remove,containsKey,keyset,values
Queue队列 LinkedBlockingQueue

16.迭代器(封装的遍历,有没有+取下个)(两个接口iterator,enumeration)
用法1.Iterator t=list.iterator;
while(t.hasNext()){
syso t.next()
}
用法2.private int[] arr = { 12, 3, 3, 6 };
public Iterator iterator() {
return new Iterator() {
int pos=0;
public Integer next() {
return arr[pos++];
}
public boolean hasNext() {
return pos<arr.length;
}
};
}

s中的数组是不可见的

while(t.hasNext()){
syso t.next()
}

17.异常处理
1.
try{
}catch(exception e){//捕获异常可有多个catch

} finally{
}
2. throws Exception//抛出方法
3.throw new MyException();//抛出自定义异常
自定义异常***(创建位置)
1.创建异常类,继承exception
2.重写getMessage方法
3.触发异常,if ----throw new 自定异常();
4.在异常内加入属性+构造方法,详细描述错误信息
return age+“岁-年龄超过限制”
4.e.printStackTrace();//打印异常栈

18.调试debug
(1)设置断点Ctrl+shift+b
(2)debug运行到断点(线程挂起)
(3)查看断点信息(变量值)
(4)控制运行过程(F5跳入,F6下一行,F7,F8继续执行)(运行步骤)
(5)查看异常栈,解决错误 e.printStackTrace();
异常名称,异常信息,栈内容(自上向下找用户行),点击到指定行

19.IO
Reader Writer 字符流(File,Print)
InputStream OutputStream 字节流(File,Object,Zip,ByteArray)
1.创建
2种流,中间流
2.读写
读时:缓冲区问题
3.关闭(先开后关)

20.序列化
Serializable (自动序列化,全部实例变量,strictfp排除)
Externalizable (自定义序列化,根据接口处理,可静态变量)
serialVersionUID设置 (值一致时成功)
21.NIO(NON BLOCKING)
chanel:InputStream.getchanel()
buffer:ByteBuffer b=ByteBuffer.allocate(100);
chanel.read(b)
selector:网络使用,一个线程管理多个chanel(tcp服务端)
22.多线程
thread:start方法,join方法,setDaemon方法
1.Thread t=new Thread(){};//重写方法
2.Thread t=new Thread(new Runnable{});//定义runnable接口
3.Thread t=new Thread(()->{});//lambda定义runnable接口
4.Runnable r1= new Runnable() {
public void run() {
}
};
Thread thread1=new Thread(r1,“sd1”);//给他一个名字
Thread thread2=new Thread(r1,“sd2”);
Thread thread3=new Thread(r1,“sd3”);

thread.sleep();
thread.currentThread();

线程同步:
Object obj=new Object();//公共访问区
synchronized(obj){//线程1
obj.wait();//在当前线程1挂起
}
synchronized(obj){//线程2
obj.notify();//原已挂起的唤醒,obj.notifyAll();
obj.wait();//线程2挂起

}

23.反射(5套方法)
1.获取class对象
2.创建实例 newinstance
3.属性(set get)方法(invoke)使用

24.Properties
load() store() getProperty()
25.xml dom4j
文档对象,根节点,子节点+属性+内容
26.Swing
JFrame ,大写,J打头控件
事件 add?listenner 方法:接口
布局管理器:setlayout(null) 指定控件大小
27.socket(管理类)
第十天下午录像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值