JavaSE总结

本文详细介绍了JavaSE的基本内容,包括Java语言的起源、JDK与JRE的区别、HelloWorld程序、基础语法如数据类型、运算符、流程控制结构,以及面向对象编程的关键概念如类、对象、继承和多态。此外,还涵盖了异常处理、常用类库如集合框架、IO流和多线程,并提及了网络编程和GUI应用的基础知识。
摘要由CSDN通过智能技术生成

JavaSE

一、Java语言初识

MarkDown语法,简单的DOS命令,计算机语言发展,Java的诞生

1995年java三大版本:

Java SE     

 Java ME     :Android 

Java EE

2006年Java        Hadoop(大数据)

JDK :开发数据包        配置环境变量

JRE:运行环境

二、HelloWorld:

public class Hello{
    public static void main(String[] args){
            System out.println("Hello,World")
    }
}

javav Hello.java:生成 class 

java Hello

编译型语言:先编译再运行

解释型语言:边读代码边解释

IDEA 开发软件

三、基础语法

1、注释:

(1)行内注释://

(2)多行注释:/**/

(3)文档注释:/** */        javadoc 生成帮助文档

2、标识符:关键字

3、数据类型:

(1)基本数据类型

整数:byte:1、short:2、int(默认):4、long: 8

浮点数:float:4、double(默认):8、BigDecimal

字符:char:2、ascli、utf-8、Unicode、`\u0000`:\b,\n,\t,\r,\',\",\\

布尔值:boolean:1、if(a)

(2)引用数据类型

类、接口、数组

4、类型转换

(1)自动类型转换:低转高

(2)强制类型转换 :高转低

5、变量和常量:type warName[=value];

作用域:(1)类变量

              (2)实例变量

              (3)局部变量

常量:final MAX A = 10;

命名规范:

(1)见名知意

(2) 驼峰命名(变量,方法)

(3)类,首字母大写,驼峰命令

(4)常量:大写+下划线

(5)不要使用拼音命令

6、运算符

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

(2)赋值运算符:=

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

(4)逻辑运算符:&& || !

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

(6)条件运算符:? :

(7)扩展运算符:+= -= *= /=

7、包机制

(1)域名倒写

(2)package

(3)import

(4)防止命名冲突

8、JavaDoc

JDK 帮助文档

javadoc:@author、@Verdion、@Since、@param、@return、@throws

四、流程控制

1、Scanner:

用户交互System.in

2、顺序结构:

程序默认的结构,自上而下的执行

3、选择结构:

(1)if 单选择结构

(2)if-else 双选择结构

(3)if-else if-else 多选择结构

Switch:(1)jdk 支持了Sring类型

              (2)case 穿透现象

              (3)break

              (4)default

4、循环结构:

(1)while        尽量避免死循环

(2)do...while

(3)for        for(int=0;i<100;i++)

(4)增强 for 循环

(5)九九乘法表

5、break&continue

break:跳出循环

continue:终止当次循环

带标签 continue

return:结束方法的运行

6、方法

什么是方法:一堆语句的集合

方法的定义:修饰符     返回值   方法名(参数名)(return 返回值;)

方法的调用        (1)类名.方法        (2)对象.方法

方法的车载        名字相同,参数列表不同

命令行传参        给main方法传递参数

可变长参数        ...    必须放在最后一个参数

递归                 自己调用自己,给自己一个出口

7、数组

数组的定义:(1)new int[5](2){1,2,3,4,5}(3)必须是同一个类型

数组的使用:(1)通过下标拿到值(2)ArrayIndexoutofBounds(3)增加 for 循环遍历

二维数组          int[ ][ ]

Arrays 工具类

排序算法:

(1)冒泡排序

(2)选择排序

(3)插入排序

(4)快速排序

(5)归并排序

(6)希尔排序

(7)堆排序

(8)基数排序

五、面向对象

1、类与对象

(1)类是对象的抽象:模板Class(2)对象是类的具体

2、构造方法       

构造的重载:

(1)默认的无参构造

(2)如果手动定义了有参构造就必须要手动在加一个无参构造

(3)单例模式,需要构造器私有!

new 对象        

(1)栈存放引用

(2)堆存放具体的对象

3、封装:

属性私有,get、set

4、继承:

extends、Object、子类拥有父类的全部属性、方法重写、this、super   Java是单继承,只能继承一个父类。

5、多态:

(1)父类的引用指向子类的对象        Person person = new Student():

(2)instanceof 关键,如果匹配,可以进行类型之间的转换

6、修饰符

public、protected、private、static、final、abstract

7、接口

(1)interface

(2)约束,只能定义方法名

(3)子类实现接口,必须重写其中的方法

(4)只有一个方法的接口叫做函数式接口,可以使用ambda表达式简化

(5)接口比抽象类更抽象

(6)一个类可以实现多个接口

8、内部类

(1)局部内部类

(2)静态内部类

(3)匿名内部类

六、异常

1、Throwable       

Exception:

(1)运行时异常:1/0;ClassNotFound;NullPoint;UnKnownType;下标越界异常......

(2)检查型异常        

Error:

(1)AWT错误

(2)JVM错误:StackOverFlow;OutOfMemory

2、五个关键字

(1)try()

(2)catch()()        先小后大

(3)finally()

(4)throw        手动抛出异常

(5)throws        方法抛出异常

3、自定义异常

继承Exception类即可

七、常用类

Object类        hashcode();toString();clone();getClass();notify();wait();equals()

Math类         常见的数学运算       

Randon类        生成随机数        UUID        

File类                创建文件;查看文件;修改文件;删除文件

包装类                自动装箱和拆箱

Date类                Date;SimeDateFormat;Calendar(建议使用)

String类                不可变性  final        操作量较小

StringBuffer                可变长        append()        多线程数据量较大        效率低,安全

StringBuilder                可变长        单线程数据量较大        效率高,不安全

八、集合框架

collection:

        List:(有序可以重复)

                ArrayList(常用):add;remove;contains;size

                LinkedList(常用):getFirst();getLast();removeFirst();addFirst()......

                Vector

                Stack

        Set:(无序不可重复)

                HashSet(常用):

                TreeSet:

        lterator:迭代器

Map:

        HashMap(重点,经常用)

                JDK1.7:数组+链表

                JDK1.8:hash表=数组+链表+红黑树

        TreeMap

Collections工具类

泛型<>约束,避免类型装换之间的问题

九、IO流

字节流:

        输出:OutputStream

        输入:InputStream

字符流:

        Reader

        Writer

节点流:

        CharArrayReader,Writer,inputstream,outputstream

        StringReader,Writer

        pipe(管道流)PipedOutputStream

        File(......)

处理流:

        buffer:bufferInputStream,bufferOutputStream,bufferReader,Bufferwriter

        序列化:反序列化        Serializable        transient(透明的)

        data:DateInputStream,DateOutputStream

        object流

        转换流:InputstreamReader,Outputstreamwriter

        Filter:四个

        print:PrintWriter,PrintStream

十、多线程

进程和线程

run(),Start()

线程创建的方式:

        Thread:start0,本地方法:Java无权调用,交给底层的c处理        

        Runnable:函数式接口        lambda

        callable:可以有返回值

静态代理:new Thread(Runnable)start();

Lambda表达式:函数式编程;避免内部类定义过多

线程的状态:

        新建状态、就绪、运行、阻塞、死亡

常用的方法:sleep、join、yield、isLive、start、setPriority、interrupt()

线程同步:

        多个对象操作同一个资源,并发

        队列 + 锁

        Synchronized:

                同步方法(弊端:锁太多了)

                同步代码块(常用!)

                 第一个线程进来拿到锁,后面就要排队了,直到这个人释放锁,后面拿到锁才能进去

                死锁:两个都抱着对方的锁

                          满足条件:互斥;请求与保持;不剥夺条件;循环等待条件

        Lock(优先级高)

                        ReentrantLock

                                lock        trylock        unlock

线程通信

        缓冲区:消息队列

        标志位:红绿灯

        wait();

        notifyAll();

线程池:

        池化技术

        池的大小

        最大连接数

        保持时间。。。

十一、网络编程

IP、端口、Socker

TCP:

        三次握手

        四次握手

        面向连接

UDP:

        无连接

        Packet

URL、初识Tomcat、聊天通信、文件上传

十二、GUI

AWT:

        Frame

        监听事件:鼠标、键盘、窗口、动作事件

Swing:文本框、标签、按钮、文本域、面板、布局方式、关闭窗口、列表

贪吃蛇:Timer、键盘监听、游戏帧的概念

十三、注解和反射

注解:

        元注解、内置注解、自定义注解、反射读取注解

反射:

        Class        newInstance();

        类加载机制

        Method:invoke(user,"杨3");存在重载,也需要写参数的类型

        Field        set(user4,"杨4");

        Contruct:newInstance();获取的时候需要,传递参数的class类型

        破坏私有关键字        setAccessible(true);

        性能分析        正常>检测关闭的反射>默认的反射

        反射获得注解,泛型...

单例模式的探究

Stream

ForkJoin:效率对比

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值