java 基础笔记
weixin_45970171
这个作者很懒,什么都没留下…
展开
-
JavaWeb
JavaWebJava Web1、基本概念1.1、前言web开发:web,网页的意思 , www.baidu.com静态webhtml,css提供给所有人看的数据始终不会发生变化!动态web淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!技术栈:Servlet/JSP,ASP,PHP在Java中,动态web资源开发的技术统称为JavaWeb;1.2、web应用程序web应用程序:可以提供浏览器原创 2020-11-21 22:38:24 · 613 阅读 · 0 评论 -
JDBC操作事务, 数据库连接池
JDBC操作事务, 数据库连接池JDBC操作事务ACID原则原子性:要么全部完成,要么都不完成一致性:总数不变隔离性:多个进程互不干扰持久性:一旦提交不可逆,持久化到数据库了隔离性的问题:脏读:一个事务读取了另一个没有提交的事务不可重复读:在同一个事务内,重复读取表中的数据,表数据发生了改变虚读(幻读):在一个事务内,读取到了别人插入的数据,导致前后读出的数据不一致package com.JDBC.www;import java.sql.Connection;import j原创 2020-11-11 20:08:41 · 121 阅读 · 0 评论 -
反射机制,类的加载
反射机制(Reflection)定义反射是框架设计的灵魂JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。反射是Java被视为动态语言的关键要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.以上的总结就是什么是反射反射就是把java类中的各种成分映射原创 2020-11-10 19:36:28 · 348 阅读 · 1 评论 -
注解(Annotation)
注解Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。annotation的作用:不是程序本身,可以对程序作出解释,(这一点跟注解(comment)没有什么区别)可以被原创 2020-11-10 09:06:45 · 211 阅读 · 0 评论 -
事务,mysql设计
事务什么是事务事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行MySQL事务处理只支持InnoDB和BDB数据表类型事务的ACID原则 百度 ACID原子性(Atomic)整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(ROLLBACK)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性(Consist)一个事务可以封装状态改变(除非它是一个原创 2020-11-09 23:07:27 · 144 阅读 · 0 评论 -
事务,索引
事务什么是事务事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行MySQL事务处理只支持InnoDB和BDB数据表类型事务的ACID原则 百度 ACID原子性(Atomic)整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(ROLLBACK)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性(Consist)一个事务可以封装状态改变(除非它是一个原创 2020-11-09 11:52:22 · 117 阅读 · 0 评论 -
DQL后一部分的查询数据
DQL查询数据联表查询操作描述Inner join如果表中至少有一个匹配,就返回行left join会从左表中返回所有的值,即使右表中没有匹配right join会从右表中返回所有的值,即使左表中没有匹配–join (连接的表) on(判断的条件) 连接查询–where 等值查询SELECT语法SELECT [ALL | DISTINCT]{* | table.* | [table.field1[as alias1][,ta原创 2020-11-09 10:18:43 · 92 阅读 · 0 评论 -
MySQL基础
初始MySQLjavaEE: 企业级Java开发 web前端 (页面:展示,数据)后台(连接点:连接数据库JDBC ,连接前端(控制,控制试图跳转,和给前端传递数据))数据库(存数据,txt,excel,word)只会写代码,学好数据库,基本混饭吃;操作系统,数据结构与算法!当一个不错的程序员离散数学,数学电路,体系结构,编译原理。+实战经验,高级程序员,优秀的程序员为什么学习数据库岗位需求现在的世界,大数据时代,得数据者得天下。被迫需求:存数据 去IOE**数据库是所有软原创 2020-11-08 00:12:43 · 100 阅读 · 0 评论 -
网络编程
网络编程软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。javaweb : 网页编程 B/S网络编程: TCP/IP (协议) C/S网络通信协议**网络通信协议:**通过计算机网络可以使多台原创 2020-11-07 16:14:00 · 122 阅读 · 0 评论 -
线程协作,线程池
线程协作,线程池线程协作**概念:**多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。为什么要处理线程间通信:多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。如何保证线原创 2020-11-06 19:15:12 · 123 阅读 · 0 评论 -
线程安全问题,线程同步,死锁,lock锁
线程安全问题,线程同步,死锁线程安全问题如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样 的,而且其他的变量的值也和预期的是一样的,就是线程安全的。我们通过一个案例,演示线程的安全问题:电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大战奥特曼”,本次电影的座位共100个 (本场电影只能卖100张票)。 我们来模拟电影院的售票窗口,实现多个窗口同时卖 “葫芦娃大战奥特曼”这场电影票(多个窗口一起卖这100张票) 需要窗口,采用线原创 2020-11-06 16:31:27 · 166 阅读 · 0 评论 -
Random,Arrays,String,Math类
String类java.lang.String :此类不需要导入。构造方法public String() :初始化新创建的 String对象,以使其表示空字符序列。public String(char[] value) :通过当前参数中的字符数组来构造新的String。public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的//无参构造 String str = new String(); // 通过字符数组构造 char c原创 2020-11-05 21:36:08 · 96 阅读 · 0 评论 -
缓冲流、转换流、序列化流,打印流
【缓冲流、转换流、序列化流】缓冲流作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedRea原创 2020-11-05 21:01:23 · 107 阅读 · 0 评论 -
File类
File类java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。public File(File parent, String child) :从父抽象路径名和子路径名字符串创建原创 2020-11-05 21:38:00 · 84 阅读 · 0 评论 -
Map集合,Entry键值对对象
MapMap集合我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection中的集合称为单列集合,Map中的集合称为双列集合原创 2020-11-05 21:37:38 · 433 阅读 · 0 评论 -
常用API
常用APISystem类java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:public static long currentTimeMillis():返回以毫秒为单位的当前时间。public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。cur原创 2020-11-03 09:03:48 · 78 阅读 · 0 评论 -
关于日期时间的类
关于日期时间的类Date类java.util.Date类 表示特定的瞬间,精确到毫秒。查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。无参构造方法public Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指原创 2020-11-02 22:39:34 · 348 阅读 · 0 评论 -
Object类
Object类java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用如果一个类没有特别指定父类, 那么默认则继承自Object类。根据JDK源代码及Object类的API文档public String toString():返回该对象的字符串表示.public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。toString方法toString方法返回该对象的字符串表示,其实该字符串内原创 2020-11-02 18:28:29 · 114 阅读 · 0 评论 -
观测线程状态,守护(daemon)线程
观测线程状态,守护(daemon)线程观测线程状态package com.Jinone.www;public class TextState { public static void main(String[] args) { Thread thread=new Thread(()->{ for(int i=0;i<5;i++) { try { Thread.sleep(1000); } catch (InterruptedException e)原创 2020-11-02 11:24:33 · 214 阅读 · 0 评论 -
线程强制执行 Join
线程强制执行 JoinJoin 合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞可以想象成插队package com.Jinone.www;import java.text.SimpleDateFormat;import java.util.Date;public class TextJoin implements Runnable { public static void main(String[] args) { TextJoin join=new TextJoin(原创 2020-11-02 10:30:05 · 68 阅读 · 0 评论 -
线程休眠,礼让
线程休眠,礼让线程休眠sleep(时间)指定当前线程阻塞的毫米值sleep存在异常InterruptedException;sleep时间达到后线程进入就绪状态sleep可以模拟网络延迟(就是在run方法中加一个sleep方法就可以了),倒计时等每一个对象都有一个锁,sleep不会释放锁;package com.Jinone.www;import java.text.SimpleDateFormat;import java.util.Date;public class TextS原创 2020-11-02 10:04:11 · 759 阅读 · 0 评论 -
线程休眠
线程休眠sleep(时间)指定当前线程阻塞的毫米值sleep存在异常InterruptedException;sleep时间达到后线程进入就绪状态sleep可以模拟网络延迟(就是在run方法中加一个sleep方法就可以了),倒计时等每一个对象都有一个锁,sleep不会释放锁;package com.Jinone.www;import java.text.SimpleDateFormat;import java.util.Date;public class TextStop { p原创 2020-11-02 09:50:16 · 80 阅读 · 0 评论 -
线程状态,线程停止
线程状态,线程停止创建状态 Thread t=new Thread();开启线程 用t.start方法就绪状态,就是等待CPU资源调度阻塞状态,就是调用sleep,wait方法或者同步锁定时,线程进入阻塞状态阻塞事件解除后,就重新进入就绪状态运行状态,就是CPU在调度中最后dead ,线程中断或者结束isAilve 方法,就是测试线程是否处于活动状态join(),等待该线程终止停止线程不推荐使用JDK提供的stop(),destroy()方法自定义线程停止的过程原创 2020-11-02 09:06:44 · 137 阅读 · 0 评论 -
静态代理
静态代理package com.Jinone.www;public class StacticProxy{ public static void main(String[] args) { You you =new You(); //你要结婚 WeddingCompany wed=new WeddingCompany(you); wed.HappysHarry(); //new Thread(new Runnable()).start();原创 2020-11-01 16:48:21 · 64 阅读 · 0 评论 -
实现Callable接口
实现Callable接口实现Callable 接口,需要返回类型重写call方法,需要抛出异常创建目标对象创建执行服务:ExecutorService ser=Execututors.newFixedThreadPool(1);提交执行:Future result1=ser.submit(t1)获取结果:boolean r1=result1.get()关闭服务:ser.shutdownNow();package com.Jinone.www;import java.io.IOExce原创 2020-11-01 16:07:27 · 211 阅读 · 0 评论 -
龟兔赛跑
龟兔赛跑package com.Jinone.www;import java.io.IOException;public class TextThread implements Runnable { //胜利者 private static String winner; private int sa=0; @Override public void run() { for(int i=1;i<=100;i++) { boolean flag=getFlag(i);原创 2020-11-01 15:17:36 · 137 阅读 · 2 评论 -
实现Runnable
实现Runnable定义MyRunnable类实现Runnable接口实现run()方法,编写线程执行体创建对象,调用start()方法启动线程package com.Jinone.www;import java.io.IOException;public class TextThread implements Runnable { @Override public void run() { for(int i=0;i<20;i++) { System.out.pr原创 2020-11-01 14:28:51 · 539 阅读 · 0 评论 -
多线程基础
多线程基础核心概念:线程就是独立的执行路径在程序运行时,即使没有自己创建线程,后台也会多个线程main()称为主线程,为系统的入口,用于执行整个程序;在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为的干预的。对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制;线程会带来额外的开销,如CPU调度时间,并发控制开销。每个线程在自己的工作内存交互,内存控制不当会造成数据不一致Thread创建线程方式一:继承Thread原创 2020-11-01 11:22:37 · 116 阅读 · 0 评论 -
自定义的异常类
自定义的异常类package com.jin.www;public class MyException extends Exception{ private int detail; public MyException(int a) { this.detail=a; } public String toString() { return "MyException{"+detail+"}"; } }package com.jin.www;public class De原创 2020-10-31 22:39:10 · 71 阅读 · 0 评论 -
try catch, throw, throws
try catch, throw, throwspackage com.jin.www;public class Person { public static void main(String[] args) { int a=1; int b=0; try { System.out.println(a/b); //try 监控区域 }catch(ArithmeticException e){ //catch()括号里是要捕获的异常 Thr原创 2020-10-31 17:18:35 · 51 阅读 · 0 评论 -
接口 内部类
接口 内部类接口接口的本质是契约,就像我们人间的法律一样,制订好后大家都要遵守。接口关键字:interface接口都需要实现类类 可以实现接口,但是需要重写接口中的方法利用接口实现多继承接口作用约束定义一些方法,让不同的人实现。方法都是 public abstract 修饰常量都是 public static final 修饰接口不能实例化,接口中没有构造方法implements 可以实现多个接口必须要重写接口中的方法接口没有构造方法内部类内部类就是在一个类的内部原创 2020-10-31 16:17:25 · 126 阅读 · 0 评论 -
抽象类
抽象类package com.jin.www;// abstract 抽象类public abstract class Person { //约束~有人帮我们实现~ //abstract ,抽象方法,只有方法名字,没有方法实现! public abstract void say() { }}抽象类的所有方法,继承它的子类,都必须要实现它的方法-除非~子子类 类只有单继承,而接口可以多继承。不能new 这个抽象类,只能靠子类去实现它:约束!抽象类可以写原创 2020-10-31 10:02:54 · 53 阅读 · 0 评论 -
static关键字
static关键字private static int age; //静态的变量private double score; //非静态的变量package com.jin.www;public class Demo01 { static String name; //类变量 public static void main(String[] args) { Demo01 demo=new Demo01(); System.out.println(demo.name); //通原创 2020-10-31 09:42:06 · 77 阅读 · 0 评论 -
封装 继承 多态
封装 继承 多态封装我们程序设计要追求**“高内聚,低藕合”**。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。记住:属性私有,get/set关键字:private 表示只能类内使用它,或者new出来对象,再用get方法获取,set方法设置。作用提高程序的安全性,保护数据。隐藏代码的实现细节。统一接口。系统可维护增加了继承继承的本质是对某一原创 2020-10-31 09:08:23 · 117 阅读 · 1 评论 -
面向对象,构造器
面向对象,构造器面向对象编程的本质就是:以类的方式组织(封装)数据。三大特性:封装,继承,多态。return 结束方法package com.jin.www;public class Student { public static void say() { // TODO Auto-generated method stub System.out.println("我要说话!谢谢"); }}//两个Java文件package com.jin.www;public cla原创 2020-10-30 19:27:14 · 93 阅读 · 0 评论 -
冒泡排序
package com.jin.www;import java.util.Arrays;public class one { public static void main(String[] args) { int mathone=0; int []math= {1,3,4,21,343,12,431,12,23,-12}; for(int i=0;i<math.length-1;i++) { for(int j=0;j<math.length-1;j++) {原创 2020-10-30 18:30:59 · 84 阅读 · 0 评论 -
Arrays 类
Arrays 类数组的工具类 java.util.Arrays二、Arrays常用函数(都是静态的)1.void Arrays.sort()void Array.sort(Object[] array)功能:对数组按照升序排序示例 int[] nums = {2,5,0,4,6,-10}; Arrays.sort(nums); for(int i :nums) System.out.print(i+" ");转载 2020-10-30 14:11:45 · 53 阅读 · 0 评论 -
Java内存分析
Java内存分析堆:1. 存放new 的对象和数组 2.可以被所有的线程共享,不会存放别的对象引用栈:1. 存放基本变量类型(会包含这个基本类型的具体数值)2.引用对象的变量(会存放这个引用在堆里面的具体地址)方法区:1.可以被所有的线程共享 2. 包含了所有的class和static变量数组的默认初始化数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照变量同样的方式被隐式初始化ArrayIndexOutOfBoundsException: 数组下标原创 2020-10-30 13:59:37 · 113 阅读 · 0 评论 -
数组
数组的基本概念如果说现在要求你定义100个整型变量,那么如果按照之前的做法,可能现在定义的的结构如下:int i1, i2, i3, ... i100;但是这个时候如果按照此类方式定义就会非常麻烦,因为这些变量彼此之间没有任何的关联,也就是说如果现在突然再有一个要求,要求你输出这100个变量的内容,意味着你要编写System.out.println()语句100次。其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。数组本身属于引用数据类型,那么既然是引用数据类型转载 2020-10-30 13:34:47 · 54 阅读 · 0 评论 -
递归
递归的思想:具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。递归的两个条件:可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式。(自身调用)存在一种简单情境,可以使递归在简单情境下退出。(递归出口)递归三要素:一定有一种可以退出程序的情况;总是在尝试将一个问题化简到更小的规模父问题与子原创 2020-10-30 13:15:25 · 107 阅读 · 0 评论