04 2021 档案

摘要:栈与堆 栈:栈内存、主管程序的运行、生命周期和线程同步。先进后出 栈内存 : 8大基本数据类型、对象的引用、实例的方法 线程执行完,栈内存释放。所以说栈没有垃圾回收。 一旦线程结束,栈就OVER! 三种JVM Sun公司的HotSpot :Java HotSpot(TM) 64-Bit Server 阅读全文
posted @ 2021-04-30 10:42 saxon宋 阅读(98) 评论(0) 推荐(0)
摘要:Native与方法区 Native public static void main(String[] args) { new Thread(() ->{ },"demo").start(); //native:凡是带了native关键字的,说明Java的作用范围达不到了,会去调用底层语言的库【这里是 阅读全文
posted @ 2021-04-29 14:20 saxon宋 阅读(77) 评论(0) 推荐(0)
摘要:沙箱安全机制 Java安全模式额核心就是Java沙箱【sandbox】 阅读全文
posted @ 2021-04-29 10:49 saxon宋 阅读(77) 评论(0) 推荐(0)
摘要:类加载器与双亲委派机制 public static void main(String[] args) { Demo01 demo01 = new Demo01(); Demo01 demo02 = new Demo01(); Class<? extends Demo01> aClass = demo 阅读全文
posted @ 2021-04-29 10:05 saxon宋 阅读(55) 评论(0) 推荐(0)
摘要:JVM探究 谈谈你对JVM理解?Java8虚拟机和之前的变化更新 什么是OOM,什么是栈溢出?怎么分析 JVM的常用调优参数有哪些? 内存快照如何抓取,怎么分析Dump文件?知道吗? 谈谈JVM中,类加载器你的认识?rt-jar等 JVM的位置- JVM的位置:jre包含jvm JVM的体系结构 阅读全文
posted @ 2021-04-28 16:53 saxon宋 阅读(36) 评论(0) 推荐(0)
摘要:反射操作注解 getAnnotations():获取全部注解 getAnnotation():获取单个注解 public class Demo10 { public static void main(String[] args) throws Exception { //通过反射获得注解 Class 阅读全文
posted @ 2021-04-28 14:06 saxon宋 阅读(58) 评论(0) 推荐(0)
摘要:反射操作泛型 Java采用泛型擦除的机制来引入泛型,Java中的泛型仅仅是给编译器javac使用的,确保数值的安全性和免去强制类型转化问题,一旦编译完成后,所有与泛型有关的类型全部擦除。 为了通过反射操作这些类型,Java新增了ParameterizedType,GenericArrayType,T 阅读全文
posted @ 2021-04-28 13:35 saxon宋 阅读(65) 评论(0) 推荐(0)
摘要:性能对比分析 public static void main(String[] args) throws Exception { test01(); test02(); test03(); } //普通反射调用 public static void test01(){ Person person = 阅读全文
posted @ 2021-04-28 11:15 saxon宋 阅读(67) 评论(0) 推荐(0)
摘要:动态创建对象执行方法 有了Class对象,能做什么? 创建类的对象:调用Class对象的newInstance()方法 类必须有一个无参数的构造器 b)类的构造器访问权限需要足够 思考 难道没有无参的构造器就不能创建对象了吗?只要在操作的时候明确的调用类中的构造器,并将参数传递出去之后,才可以实例化 阅读全文
posted @ 2021-04-28 10:18 saxon宋 阅读(85) 评论(0) 推荐(0)
摘要:运行时类的完整结构 通过反射获取运行时类的完整结构 Fidel(字段),Method(方法),Constructor(构造器),Superclass(父类),Interface(接口),Annotation(注解) public static void main(String[] args) thr 阅读全文
posted @ 2021-04-27 17:27 saxon宋 阅读(74) 评论(0) 推荐(0)
摘要:类加载器 类加载的作用:将class文件字节码加载到内存中,并将这些静态的数据转化成方法区运行时的数据结构,然后在堆中生成一个代表这个类的Class对象,作为方法区中类数据的访问入口。 类缓存: 标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间 阅读全文
posted @ 2021-04-27 14:06 saxon宋 阅读(75) 评论(0) 推荐(0)
摘要:类的初始化 类的主动引用(一定会发生类的初始化) 当虚拟机启动,先初始化main方法所在的类。 new一个类的对象。 调用类的静态成员(除了final常量)和静态方法。 使用java.long.reflect包的方法对类进行反射调用。 当初始化一个类,如果父类没有被初始化,则先会初始化它的父类。 p 阅读全文
posted @ 2021-04-27 13:49 saxon宋 阅读(264) 评论(0) 推荐(0)
摘要:Java内存分析 public class Demo03 { public static void main(String[] args) { Test test = new Test(); System.out.println(Test.a); } /* * 1.加载到内存,会产生一个类对应的cl 阅读全文
posted @ 2021-04-27 11:08 saxon宋 阅读(71) 评论(0) 推荐(0)
摘要:Class类 对象照镜子后可以得到的信息:某个类的属性、方法和构造器、某个类到底实现了哪些接口。对于每个 类而言,JRE 都为其保留一个不变的 Class 类型的对象。一个 Class 对象包含了特定某个结构 (class/interface/enum/annotation/primitive ty 阅读全文
posted @ 2021-04-27 10:16 saxon宋 阅读(69) 评论(0) 推荐(0)
摘要:反射机制Reflection 1、静态 VS 动态语言 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的 函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自 身结构。 主要动态语言:Object-C、C#、JavaScrip 阅读全文
posted @ 2021-04-26 15:56 saxon宋 阅读(73) 评论(0) 推荐(0)
摘要:注解Annotation Annotation 是从JDK5.0开始引入的新技术 . Annotation的作用 不是程序本身 , 可以对程序作出解释.(这一点和注释(comment)没什么区别) 可以被其他程序(比如:编译器等)读取. Annotation的格式 注解是以”@注释名”在代码中存在的 阅读全文
posted @ 2021-04-26 13:33 saxon宋 阅读(59) 评论(0) 推荐(0)
摘要:线程池 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。 可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线 阅读全文
posted @ 2021-04-25 15:03 saxon宋 阅读(31) 评论(0) 推荐(0)
摘要:线程协作 生产者消费者 应用场景 : 生产者和消费者问题 假设仓库中只能存放一件产品 , 生产者将生产出来的产品放入仓库 , 消费者将仓库中产品取走消费 . 如果仓库中没有产品 , 则生产者将产品放入仓库 , 否则停止生产并等待 , 直到仓库中的产品被消费者取走为止 . 如果仓库中放有产品 , 则消 阅读全文
posted @ 2021-04-25 14:59 saxon宋 阅读(61) 评论(0) 推荐(0)
摘要:Lock(锁) 从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Loc 阅读全文
posted @ 2021-04-25 14:58 saxon宋 阅读(613) 评论(0) 推荐(0)
摘要:死锁 多个线程各自占有一些共享资源 , 并且互相等待其他线程占有的资源才能运行 , 而导致两个或者多个线程都在等待对方释放资源 , 都停止执行的情形 . 某一个同步块 同时拥有 “ 两个以上对象的锁 ” 时 , 就可能会发生 “ 死锁 ” 的问题 . 鱼与熊掌不能兼得 public class De 阅读全文
posted @ 2021-04-25 14:56 saxon宋 阅读(57) 评论(0) 推荐(0)
摘要:CopyOnWriteArrayList 线程安全 CopyOnWriteArrayList 是JUC下的一个方法,在java.util.concurrent.CopyOnWriteArrayList这个包下面 //线程安全 public class TestJUC { public static 阅读全文
posted @ 2021-04-25 14:52 saxon宋 阅读(77) 评论(0) 推荐(0)
摘要:同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需要对这个方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法: synchronized 方法 和 synchronized 块 同步方法: public synchronized v 阅读全文
posted @ 2021-04-25 14:50 saxon宋 阅读(273) 评论(0) 推荐(0)
摘要:三大不安全案例 买票问题 //买票 public class Demo01 { public static void main(String[] args) { BuyTickets buyTickets = new BuyTickets(); new Thread(buyTickets,"pers 阅读全文
posted @ 2021-04-25 14:47 saxon宋 阅读(77) 评论(0) 推荐(0)
摘要:线程同步(重点) 并发和并行 并发是两个队列交替使用同一台咖啡机,并行是两个队列同时使用两台咖啡机,如果串行,一个队列使用一台咖啡机,那么哪怕前面那个人便秘了去厕所呆半天,后面的人也只能死等着他回来才能去接咖啡,这效率无疑是最低的。 并发是不是一个线程,并行是多个线程? 并发和并行都可以是很多个线程 阅读全文
posted @ 2021-04-25 14:42 saxon宋 阅读(51) 评论(0) 推荐(0)
摘要:守护(daemon)线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如gc线程 如,后台记录操作日志,监控内存,垃圾回收等待.. 设置为守护线程核心就是将线程的setDaemon(true)设置为true public class TestDaemo 阅读全文
posted @ 2021-04-25 14:37 saxon宋 阅读(125) 评论(0) 推荐(0)
摘要:线程优先级 Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行 线程的优先级用数字表示,范围从1~10. Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread.NORM_PR 阅读全文
posted @ 2021-04-25 14:33 saxon宋 阅读(135) 评论(0) 推荐(0)
摘要:线程状态观测 NEW 线程尚未开始。 RUNNABLE 处于这种状态中的java虚拟机执行的线程。 BLOCKED 线程阻塞等待监控锁。 WAITING 处于这种状态的线程被无限期地等待另一个线程来执行特定的动作。 TIMED_WAITING 处于这种状态的线程正在等待另一个线程上执行一个动作指定的 阅读全文
posted @ 2021-04-25 14:31 saxon宋 阅读(52) 评论(0) 推荐(0)
摘要:线程插队(join) Join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞 可以想象成插队 a b 两个线程,在a队伍跑的过程中,b线程来插队,那么a就发生了阻塞,停止执行,直到b线程执行完,a才能执行。 //线程插队join public class TestJoin impleme 阅读全文
posted @ 2021-04-25 14:28 saxon宋 阅读(227) 评论(0) 推荐(0)
摘要:线程礼让 线程礼让(yield) 礼让线程,让当前正在执行的线程暂停,但不阻塞 将线程从运行状态转为就绪状态 让cpu重新调度,礼让不一定成功!由cpu决定 ublic class TestYield { public static void main(String[] args) { MyYiel 阅读全文
posted @ 2021-04-25 14:26 saxon宋 阅读(92) 评论(0) 推荐(0)
摘要:线程休眠 线程的休眠 sleep (时间) 指定当前线程阻塞的毫秒数 sleep 存在异常 InterruptedException sleep 时间达到后线程进入就绪状态 sleep 可以模拟网络延时,倒计时等 每个对象都有一个锁,sleep 不会释放锁 public class TestSlee 阅读全文
posted @ 2021-04-25 14:24 saxon宋 阅读(88) 评论(0) 推荐(0)
摘要:线程停止 线程状态 JDK中用Thread.State类定义了线程的几种状态 要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态: 新建:当一个Thread类或其子类的对象被声明并创建时,新生的线 阅读全文
posted @ 2021-04-25 10:32 saxon宋 阅读(81) 评论(0) 推荐(0)
摘要:Lamda表达式 Lamda表达式 λ 希腊字母表中排序第十一位的字母 ,英文名字为Lambda 避免匿名类定义太多 其实质属于函数式编程的概念 (params)-> expression[表达式] (params)->statement [语句] (params)-> { statement } 阅读全文
posted @ 2021-04-25 09:50 saxon宋 阅读(162) 评论(0) 推荐(0)
摘要:静态代理 模拟婚庆公司,来实现静态代理 我们真实角色,婚庆公司代理角色 结婚事件为接口 /* 静态代理模式总结: 1.真实对象和代理对象都要实现同一个接口 2.代理对象要代理真实角色 好处: 1.代理对象可以做很多真实对象做不了的事情 2.真实对象专注于做自己的事情 */ public class 阅读全文
posted @ 2021-04-25 09:44 saxon宋 阅读(48) 评论(0) 推荐(0)
摘要:- 实现Runnable接口 实现Runnable 定义 MyRunnable类 实现 Runnable接口 重写run()方法,编写线性执行体 创建线程对象,调用 start() 方法启动线程 推荐使用Runnable对象,因为Java单继承的局限性 //创建线程方式2: 实现runnable接口 阅读全文
posted @ 2021-04-25 09:42 saxon宋 阅读(874) 评论(0) 推荐(0)
摘要:实现Callable接口 实现Callable接口,需要返回值类型 重写call方法,需要抛出异常 创建目标对象 创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1); 提交执行:Future result1 = ser.submi 阅读全文
posted @ 2021-04-25 09:29 saxon宋 阅读(138) 评论(0) 推荐(0)
摘要:初识并发问题 //多线程同时操作同一个对象 //抢火车票的例子 //发现问题:多个线程操作同一个资源的情况下,线程不安全,数据会出现紊乱 (并发问题) public class ThreadTest04 implements Runnable{ //票数 private int ticketNums 阅读全文
posted @ 2021-04-24 10:09 saxon宋 阅读(42) 评论(0) 推荐(0)
摘要:多线程图片下载 先引入一个jar包 public class ThreadTest02 extends Thread{ private String url; //网络地址 private String name; //文件名 public ThreadTest02(String url,Strin 阅读全文
posted @ 2021-04-24 10:06 saxon宋 阅读(207) 评论(0) 推荐(0)
摘要:用到commons-io.jar的时候 原因是:低版本jre运行了高版本编译的class文件 阅读全文
posted @ 2021-04-19 16:56 saxon宋 阅读(3581) 评论(0) 推荐(0)
摘要:Thread类 线程的创建 三种创建方式: 1. Thread class { 继承Thread类 (重点)} 2. Runnable 接口 { 实现Runnable接口 (重点)} 3. Callable 接口 { 实现Callable接口 (了解)} Thread //创建线程方式1:继承Thr 阅读全文
posted @ 2021-04-19 14:45 saxon宋 阅读(109) 评论(0) 推荐(0)
摘要:多线程简介 Process与Thread 说起进程,有必要提一下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念 而进程则是执行程序的一次执行过程,它是一个动态概念,是系统资源分配的单位 通常一个进程中可以包含若干个线程,且必须至少含有一个线程,不然没有存在的意义,线程是 阅读全文
posted @ 2021-04-19 14:21 saxon宋 阅读(74) 评论(0) 推荐(0)
摘要:UDP聊天实现 循环发送消息 public static void main(String[] args) throws Exception{ DatagramSocket socket = new DatagramSocket(8888); //准备数据,控制台读取 system.in Buffe 阅读全文
posted @ 2021-04-19 11:19 saxon宋 阅读(49) 评论(0) 推荐(0)
摘要:UDP 发短信 : 不需要连接但是需要知道对方的地址 发送消息 //不需要连接服务器 public static void main(String[] args) throws Exception { //1.建立一个socket DatagramSocket datagramSocket = ne 阅读全文
posted @ 2021-04-19 10:14 saxon宋 阅读(67) 评论(0) 推荐(0)
摘要:TCP实现文件上传 //服务端 public static void main(String[] args) throws Exception{ // 1.创建服务 ServerSocket serverSocket = new ServerSocket(9000); //2.监听客户端的 Sock 阅读全文
posted @ 2021-04-17 22:17 saxon宋 阅读(76) 评论(0) 推荐(0)
摘要:TCP 客户端 连接服务器Socket 发送消息 //客户端 public static void main(String[] args) { Socket socket = null; OutputStream outputStream = null; //了解服务器的地址 try { InetA 阅读全文
posted @ 2021-04-16 17:19 saxon宋 阅读(61) 评论(0) 推荐(0)
摘要:通信协议 网络通信协议: 速率 ; 传输码率 ; 代码结构; 传输概率 TCP: 用户传输协议 UDP:用户数据报协议 再传输层 IP : 网络互联协议 TCP/IP 就是一种协议 TCP 对比 UDP TCP:打电话 连接稳定 三次握手,四次挥手 三次握手 A :发出 B :收到 A :明白 四次 阅读全文
posted @ 2021-04-16 15:30 saxon宋 阅读(263) 评论(0) 推荐(0)
摘要:端口port 端口: 计算机上的一个程序的进程; 不同的进程有不同的端口号!用来区分软件! 被规定 0 - 65535 TCP UDP : 65535*2 ,单个协议下,端口号不能冲突 端口分类(不建议占用) 公有端口0~1023 HTTP : 80 HTTPS : 443 FTP : 21 Tel 阅读全文
posted @ 2021-04-16 14:12 saxon宋 阅读(261) 评论(0) 推荐(0)
摘要:IP地址 ip地址:inteAddress 唯一定位的主机 127.0.0.1 本机localhost ip地址的分类 ipv4 / ipv6 ipv4 127.0.0.1,四个字节 ,0-255,42亿 ;30亿再北美,4亿再亚洲 ,2011年用尽 ipv6 16位*8无符号整数 = 128b 公 阅读全文
posted @ 2021-04-16 13:48 saxon宋 阅读(95) 评论(0) 推荐(0)
摘要:网络通信的要素 如何实现网络的通信? 通信双方地址: ip 端口号 需要规则 通信协议 网络通信协议: ​ TCP/IP 参考 ​ 小结: 网络编程中的两个主要问题: 如何让准确的定位网络上的一台或者多台主机名 找到主机之后如何通信 网络编程中的要素 IP和端口号 网络通信协议 万物皆对象 阅读全文
posted @ 2021-04-16 11:03 saxon宋 阅读(58) 评论(0) 推荐(0)
摘要:网络概述 概述 TCP 需要确认 一直连接 UDP 不需要确认一直连接 计算机网络 ​ 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接==起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。- 网络编程的目的 ​ 阅读全文
posted @ 2021-04-16 10:44 saxon宋 阅读(93) 评论(0) 推荐(0)
摘要:弹窗 //主窗口 public class DialogDemo extends JFrame { public DialogDemo() throws HeadlessException { this.setVisible(true); this.setSize(500,500); this.se 阅读全文
posted @ 2021-04-16 10:11 saxon宋 阅读(138) 评论(0) 推荐(0)
摘要:Swing-JFrame public class JFrameDemo { //初始化 public void init(){ JFrame jFrame = new JFrame("JFrame窗口!"); jFrame.setVisible(true); jFrame.setBounds(10 阅读全文
posted @ 2021-04-15 17:03 saxon宋 阅读(47) 评论(0) 推荐(0)
摘要:键盘监听 public class Demo08 { public static void main(String[] args) { new KeyFrame(); } } class KeyFrame extends Frame{ public KeyFrame(){ setBounds(100 阅读全文
posted @ 2021-04-15 15:54 saxon宋 阅读(54) 评论(0) 推荐(0)
摘要:窗口监听 public class Demo07 { public static void main(String[] args) { new WindowFrame(); } } class WindowFrame extends Frame{ public WindowFrame() throw 阅读全文
posted @ 2021-04-15 14:48 saxon宋 阅读(51) 评论(0) 推荐(0)
摘要:鼠标监听 实现鼠标描点 public class Demo06 { public static void main(String[] args) { new MyFrame("画图"); } } class MyFrame extends Frame{ //需要画笔,需要监听鼠标的位置,需要集合存储 阅读全文
posted @ 2021-04-15 13:52 saxon宋 阅读(122) 评论(0) 推荐(0)
摘要:画笔 public class Demo05 { public static void main(String[] args) { new MyPaint().loadFrame(); } } class MyPaint extends Frame{ public void loadFrame(){ 阅读全文
posted @ 2021-04-15 10:03 saxon宋 阅读(61) 评论(0) 推荐(0)
摘要:简易计算器 oop原则:组合,大于继承 //简易计算器 public class Demo04 { public static void main(String[] args) { new Calculator(); } } //计算器类 class Calculator extends Frame 阅读全文
posted @ 2021-04-14 17:03 saxon宋 阅读(104) 评论(0) 推荐(0)
摘要:输入框事件监听TextField 输入框中输入的字,可以打印出来,并将输入的字全部删除。 public class Demo03 { public static void main(String[] args) { MyFrame myFrame = new MyFrame(); } } class 阅读全文
posted @ 2021-04-14 15:31 saxon宋 阅读(290) 评论(0) 推荐(0)
摘要:事件监听 当某个事件发生,会产生什么? public class Demo01 { public static void main(String[] args) { //按下按钮,触发事件 Frame frame = new Frame(); Button button = new Button() 阅读全文
posted @ 2021-04-14 10:14 saxon宋 阅读(51) 评论(0) 推荐(0)
摘要:布局管理器 流式布局 从左到右 public static void main(String[] args) { Frame frame = new Frame(); //组件-按钮 Button button1 = new Button("button1"); Button button2 = n 阅读全文
posted @ 2021-04-13 17:26 saxon宋 阅读(79) 评论(0) 推荐(0)
摘要:Panel面板 解决了无法关闭问题,即调用addWindowsListener方法的子方法,并重写其中的WindowsClosing方法,来调用程序关闭的.exit(0)方法 //Panel 可以看成一个空间,但不能单独存在 public class TestPanel { public stati 阅读全文
posted @ 2021-04-13 15:30 saxon宋 阅读(172) 评论(0) 推荐(0)
摘要:AWT 简介 包含许多类和接口!!! 组件Component类:是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。Component 类是与菜单不相关的 Abstract Window Toolkit 组件的抽象超类。 Label Button 容器Container类:继承了Com 阅读全文
posted @ 2021-04-13 13:35 saxon宋 阅读(171) 评论(0) 推荐(0)
摘要:GUI编程 Graphical User Interface(图形用户接口)。 GUI的继承体系 ​ 组件:组件就是对象 ​ 容器组件:是可以存储基本组件和容器组件的组件。 ​ 基本组件:是可以使用的组件,但是必须依赖容器。 核心技术 java.awt:Abstract Window ToolKit 阅读全文
posted @ 2021-04-13 10:36 saxon宋 阅读(447) 评论(0) 推荐(0)
摘要:异常 所有的异常都是从Throwable继承而来的,是所有异常的共同祖先。 Throwable有两个子类,Error和Exception。 Error是错误,对于所有的编译时期的错误以及系统错误都是通过Error抛出的。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟 阅读全文
posted @ 2021-04-12 15:17 saxon宋 阅读(58) 评论(0) 推荐(0)
摘要:内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类。 为什么要使用内部类? ​ 使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。 特性 **1、**内部类可以用多个实例,每个实例都有自己的状态信 阅读全文
posted @ 2021-04-12 14:03 saxon宋 阅读(46) 评论(0) 推荐(0)
摘要:接口 定义:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口是解决****Java无法使用多继承*的一种手段,但是接口在实际中更多的作用是*制定标准*的。或者我们可以直 阅读全文
posted @ 2021-04-12 10:43 saxon宋 阅读(74) 评论(0) 推荐(0)
摘要:抽象类 拥有抽象方法的类就是抽象类,抽象类要使用abstract关键字声明。 注意点 1、子类必须实现父类的抽象方法 2、抽象类和抽象方法用abstract修饰 3、抽象方法只有声明,不需要实现(没有方法体) 4、包含抽象方法的类是抽象类 5、抽象类中可以有普通方法,也可以没有普通方法 6、抽象类不 阅读全文
posted @ 2021-04-10 12:04 saxon宋 阅读(73) 评论(0) 推荐(0)
摘要:static 关键字 用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。 注意: static修饰的成员变量和方法,从属于类 普通变量和方法从属于对象 静态方法不能调用非静态成员,编译会报错 public class Student e 阅读全文
posted @ 2021-04-09 17:34 saxon宋 阅读(51) 评论(0) 推荐(0)
摘要:instanceof instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。 注意点:object instanceof class 类的实例包含本身的实例,以及所有直接或间接子类的实例 instanceof左边显式声明 阅读全文
posted @ 2021-04-09 14:59 saxon宋 阅读(212) 评论(0) 推荐(0)
摘要:多态 多态是继封装、继承之后,面向对象的第三大特性。 多态体现为**父类引用变量可以指向子类对象** *注意:在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。* 多态的定义与使用格式 定义格式:[父类类型 变量名=new 子类类型();]() 理解: 多态是同一个行为具有多个不同表现形 阅读全文
posted @ 2021-04-09 14:33 saxon宋 阅读(33) 评论(0) 推荐(0)
摘要:重写(方法的重写) 概念: 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写! 重写的规则: 参数列表与被重写方法的参数列表必须完全相同。 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样 阅读全文
posted @ 2021-04-09 13:58 saxon宋 阅读(136) 评论(0) 推荐(0)
摘要:继承 概念:继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 语法:class 子类 extends 父类 通过代码可以发现,子类(Student)并没有定义任何的操作,而在主类中所使用的全部操作都是由Person类定义的,这证明 阅读全文
posted @ 2021-04-09 11:14 saxon宋 阅读(97) 评论(0) 推荐(1)
摘要:封装 思想:将对象不需要让外界访问的成员变量和方法私有化,只提供符合开发者意愿的公有方法来访问这些数据和逻辑,保证了数据的安全和程序的稳定。高内聚、低耦合 实现方式:使用 private 修饰符把成员变量设置为私有,防止外部程序直接随意调用或修改成员变量,然后对外提供 public 的 set 和 阅读全文
posted @ 2021-04-09 10:32 saxon宋 阅读(46) 评论(0) 推荐(1)
摘要:构造器详解 java中的构造方法是一种特殊的方法,用于初始化对象。java构造函数在对象创建时被调用。它构造值,即提供对象的数据。 构造函数的规则: 构造函数名必须与其类名称相同 构造函数必须没有显式返回类型 默认构造函数(无参数构造函数) public Person() { } public cl 阅读全文
posted @ 2021-04-09 09:46 saxon宋 阅读(243) 评论(0) 推荐(0)
摘要:类与对象的创建 public class Application { //一个项目只有一个main方法 public static void main(String[] args) { //类:抽象化、实例化 //实例化后产生一个对象 Student stu1 = new Student(); St 阅读全文
posted @ 2021-04-09 09:26 saxon宋 阅读(47) 评论(0) 推荐(0)
摘要:Java 方法与调用 方法定义 /* 修饰符 返回值类型 方法名(...){ //方法体 return 返回值; } */ public String test(){ return "hello"; } public void test1(){ return; } public int max(in 阅读全文
posted @ 2021-04-08 16:42 saxon宋 阅读(73) 评论(0) 推荐(0)
摘要:Java 面向对象(OOP) 面向对象编程是当今主流的程序设计思想,已经取代了过程化程序开发技术,Java 是完全面向对象编程语言,所以必须熟悉面向对象才能够编写 Java 程序。 面向对象的程序核心是由对象组成的,每个对象包含着对用户公开的特定功能和隐藏的实现部分。程序中的很多对象来自 JDK 标 阅读全文
posted @ 2021-04-08 16:03 saxon宋 阅读(93) 评论(0) 推荐(1)
摘要:稀疏数组 定义:稀疏数组可以看做是普通数组的压缩,但是这里说的普通数组是值无效数据量远大于有效数据量的数组 如: 11X11 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 阅读全文
posted @ 2021-04-08 14:54 saxon宋 阅读(96) 评论(0) 推荐(0)
摘要:Java Arrays 类 定义: Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法。 Arrays 类的常用方法 Arrays.asList(T… data) 注意:该方法返回的是 Arrays 内部静态类 ArrayList,而不是我们平常使用的 ArrayList,, 阅读全文
posted @ 2021-04-08 14:28 saxon宋 阅读(281) 评论(0) 推荐(0)
摘要:Java多维数组 静态初始化 以二维数组的静态初始化为例,来说明多维数组静态初始化的语法格式。 示例代码如下: int[][] m = {{1,2,3},{2,3,4}}; 在二维数组静态初始化时,也必须和数组的声明写在一起。 数值书写时,使用两个大括号嵌套实现,在最里层的大括号内部书写数字的值。 阅读全文
posted @ 2021-04-08 14:17 saxon宋 阅读(146) 评论(0) 推荐(0)
摘要:数组循环 //for循环输出一个数组中的所有元素 public static void main(String[] args) { int[] nums = {1,2,3,4,5,6}; for(int i=0;i<=nums.length-1;i++){ System.out.print(nums 阅读全文
posted @ 2021-04-08 14:06 saxon宋 阅读(3691) 评论(0) 推荐(0)
摘要:Java内存 内存一般分为栈区、堆区、方法区(方法区里面包含常量池) 示意图: ​ 栈:保存局部变量的值:包括 1.基本数据类型的值。2.保存类的实例,即堆区对象的引用(指针)。3.保存加载方法时的帧。 堆:用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并 阅读全文
posted @ 2021-04-08 13:43 saxon宋 阅读(60) 评论(0) 推荐(1)
摘要:Java 数组 静态初始化 ​ int[] a = {1,2,3,4,5}; 动态初始化 ​ int[] array = new int[10]; ​ array[0]= 10; ​ 数组中没有被初始化全为0 public static void main(String[] args) { // 变 阅读全文
posted @ 2021-04-08 11:32 saxon宋 阅读(55) 评论(0) 推荐(0)
摘要:递归 程序调用自身的编程技巧称为递归( recursion)。 递归需要满足的三个条件: 一个问题的解可以分解为几个子问题的解; 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样; 存在递归终止条件。 public class Demo04 { //阶乘!!! public stati 阅读全文
posted @ 2021-04-05 20:23 saxon宋 阅读(54) 评论(0) 推荐(0)
摘要:Java可变参数 定义:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。 public voidfun(int… arr) 可变参数方法的限制 1. 一个方法最多只能有一个可变参数; 2. 可变参数必须是方法的最后一个参数。 public class Demo3 { 阅读全文
posted @ 2021-04-05 19:58 saxon宋 阅读(80) 评论(0) 推荐(0)
摘要:Java重载 在Java方法的执行过程中,重载的概念是相当重要的。Java允许同一个类中定义多个同名的方法,只要形参列表不同即可。如果同一个类中包含了两个或两个以上的方法名相同,但是形参列表不同(与返回值类型无关),我们则成为方法重载。 所谓的重载就是要求两同一不同:同一个类中方法名相同,参数列表不 阅读全文
posted @ 2021-04-05 19:36 saxon宋 阅读(183) 评论(0) 推荐(0)
摘要:Java方法 在java中,方法就是用来完成解决某件事情或实现某个功能的办法。 方法的语法格式: 在Java中,声明一个方法的具体语法格式如下: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){ 执行语句 ……… return 返回值; } public stat 阅读全文
posted @ 2021-04-05 11:58 saxon宋 阅读(67) 评论(0) 推荐(0)
摘要:For循环打印三角形 public static void main(String[] args) { //打印三角形 8行 for (int i = 1; i <= 8; i++) { for (int j = 8; j >= i; j--){ System.out.print(" "); } f 阅读全文
posted @ 2021-04-05 11:20 saxon宋 阅读(158) 评论(0) 推荐(0)
摘要:break、continue、goto break : break在任何循环语句的主体部分,均可用 break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句在switch语句中的使用) public class Demo04 { public static vo 阅读全文
posted @ 2021-04-05 11:09 saxon宋 阅读(253) 评论(0) 推荐(0)
摘要:打印九九乘法表 public class Demo02 { public static void main(String[] args) { //打印九九乘法表 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System. 阅读全文
posted @ 2021-04-05 10:41 saxon宋 阅读(351) 评论(0) 推荐(0)
摘要:IDEA 实现反编译 先找到java文件编译后的class地址 找到项目结构 将以上文件地址在文件中打开 继续点击文件直至找到class文件 ​ 将class文件复制到java文件中 ​ 刷新IDEA项目,出现class文件。打开!!! 反编译成功。 阅读全文
posted @ 2021-04-05 10:11 saxon宋 阅读(258) 评论(0) 推荐(0)
摘要:Scanner对象 Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象. Scanner reader=new Scanner(System.in); reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型next(),nextLine()获取输入的字符串, has 阅读全文
posted @ 2021-04-04 17:34 saxon宋 阅读(110) 评论(0) 推荐(0)
摘要:JavaDoc /** * @author saxon * @version 1.0 * @since 1.8 */ 生产javaDoc文档 -encoding utf-8 -charset utf-8 点击index(主页) 阅读全文
posted @ 2021-04-04 17:12 saxon宋 阅读(50) 评论(0) 推荐(0)
摘要:包机制 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。 一般利用公司域名作为包名 如:www.baidu.com com.baidu.www 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用Import语句可完成此功能。 import java.util.Da 阅读全文
posted @ 2021-04-04 16:52 saxon宋 阅读(27) 评论(0) 推荐(0)
摘要:运算符 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 阅读全文
posted @ 2021-04-04 15:24 saxon宋 阅读(23) 评论(0) 推荐(0)
摘要:变量 变量概念:可以变化的量。 Java是一种强类型语言,每个变量都必须声明其类型。 Java变量是程序中最基本的存储单元,包括变量名,变量类型和作用域。 注意事项 每个变量都有类型,类型可以是基本类型,也可以是引用类型。 变量名必须是合法的标识符。 变量名声明是一条完整的语句,因此每一个声明都必须 阅读全文
posted @ 2021-04-04 15:11 saxon宋 阅读(61) 评论(0) 推荐(0)
摘要:类型转换 Java基本数据类型转换 ​ 转换规则:从存储范围小的类型到存储范围大的类型; ​ 具体规则为:byte → short(char) → int → long → float → double; 运算中,不同类型的数据转换为同一类型,然后进行计算 强制类型转换 :(类型)变量名 高--低 阅读全文
posted @ 2021-04-04 11:43 saxon宋 阅读(51) 评论(0) 推荐(0)
摘要://整数拓展 : 二进制0b 十进制 八进制0 十六进制0x 输出结果: //浮点数拓展 //float 有限 离散 舍入误差 接近但不等于 //double // 最好不要用浮点数进行比较,用BigDecimal //所有的字符可以强制转化为数字 0-65536 ASCII编码 //转义字符 // 阅读全文
posted @ 2021-04-04 10:39 saxon宋 阅读(39) 评论(0) 推荐(0)
摘要:数据类型 基本数据类型 ​ byte 的取值范围:-128~127(-2的7次方到2的7次方-1) ​ short 的取值范围:-32768~32767(-2的15次方到2的15次方-1) ​ int 的取值范围:-2147483648~2147483647(-2的31次方到2的31次方-1) ​ 阅读全文
posted @ 2021-04-04 10:18 saxon宋 阅读(50) 评论(0) 推荐(0)
摘要:标识符 关键字(不可为类名、变量名、方法名) Java所有部分组成部分都需要名字。类名、变量名、方法名都被称为标识符! 所有的标识符应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始 首字母之后可以是字母(A-Z或者a-z),美元符($),下划线(_)或者数字的任何字符组合 不能使用 阅读全文
posted @ 2021-04-04 09:59 saxon宋 阅读(56) 评论(0) 推荐(0)
摘要:注释 注释是一个非常好的习惯 Java中有三种注释 单行注释 :// + 内容 多行注释 :**/* 内容 /* 文档注释(JavaDoc中讲解): 阅读全文
posted @ 2021-04-04 09:47 saxon宋 阅读(41) 评论(0) 推荐(0)
摘要:Java 程序运行机制 编译型 解释型 运行机制 阅读全文
posted @ 2021-04-03 11:30 saxon宋 阅读(29) 评论(0) 推荐(0)
摘要:HelloWorld 随便新建一个文件夹,存放代码 新建一个java文件 文件名后缀 .java HelloWorld.java 查看后缀名: 编辑HelloWorld.java (这里使用notepad) public class HelloWorld{ public static void ma 阅读全文
posted @ 2021-04-03 11:02 saxon宋 阅读(84) 评论(0) 推荐(0)
摘要:卸载JDK 删除Java的安装目录 删除JAVA_HOME 删除path下关于Java的目录 查看dos中的java -version 安装JDK 百度搜索jdk8, 找到下载地址 同意协议 下载电脑对应版本 双击点击安装JDK *** 记住安装好的路径 *** 配置环境变量 打开我的电脑->右击属 阅读全文
posted @ 2021-04-03 10:11 saxon宋 阅读(55) 评论(0) 推荐(0)
摘要:Java三大版本 Write one、Run AnyWhere JavaSE :标准版 (桌面程序、控制台开发...) JavaME : 嵌入式开发 (手机、家电) JavaEE : 企业级开发 (web端、服务器开发...) JDK、JRE、JVM JDK : Java Development K 阅读全文
posted @ 2021-04-02 16:59 saxon宋 阅读(67) 评论(0) 推荐(0)
摘要:当出现数据库连接数过多: 解决方法1:打开数据库安装路径的bin目录 修改my.ini 配置文件这种方式说来很简单,只要修改MySQL配置文件my.ini 或 my.cnf的参数max_connections,将其改为max_connections=1000,然后重启MySQL即可。但是有一点最难的 阅读全文
posted @ 2021-04-02 14:07 saxon宋 阅读(2626) 评论(0) 推荐(0)
摘要:Java 特性与优势 简单性 面向对象性 可移植性 高性能:效率接近C、C++ 分布式 动态性:反射机制 多线程:更好的相互性 安全性:可以构建防病毒、防侵略的特点 健壮性 JAVA为什么会成功??? 机遇+努力 阅读全文
posted @ 2021-04-02 13:24 saxon宋 阅读(44) 评论(0) 推荐(0)
摘要:1972年C诞生 贴近硬件,运行速度快,效率高。 操作系统,编译器,数据库,网络系统等 指针和内存管理 1982年C++诞生 面向对象 兼容C 图形领域、游戏等 Java初生 1995年的网页简单而粗糙,缺乏互动性。 图形界面程序(Applet) java 2标准版(j2SE): 占领桌面 java 阅读全文
posted @ 2021-04-02 11:41 saxon宋 阅读(179) 评论(0) 推荐(0)
摘要:#### 打开cmd的方式 1.开始+系统+命令提示符 2.win键+R 输入cmd 打开控制台 (推荐使用) 3.资源管理器的地址栏前面加上 cmd #### 管理员身份运行:以管理员方式运行 ### 常用的Dos命令 ```bash1. #盘符切换 E: #该盘下的所有文件 dir #切换目录 阅读全文
posted @ 2021-04-02 10:10 saxon宋 阅读(43) 评论(0) 推荐(0)
摘要:快捷键 ctrl+F4 : 关闭当前窗口 ctrl+S : 保存当前内容 shift+delete :永久删除 Windows+R : 打开运行文件窗口 : cmd:打开命令行窗口 Windows+E : 打开文件管理 Ctrl+shift+esc : 打开任务管理器 截图快捷键: 1. 全屏截图  阅读全文
posted @ 2021-04-01 17:16 saxon宋 阅读(372) 评论(0) 推荐(0)
摘要:Markdown学习 二级标题:#+空格+内容+回车 二级标题 二级标题:##+空格+内容+回车 三级标题 三级标题:###+空格+内容+回车 四级标题 四级标题:####+空格+内容+回车 字体 hello world! ** ** 粗体 hello * * 斜体 斜体加粗 *** *** 引用: 阅读全文
posted @ 2021-04-01 17:05 saxon宋 阅读(53) 评论(0) 推荐(0)