自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 SQL语句的5个简单分类

1,DQL(数据查询语言),查询语句,使用select的语句都是DQL。2,DML(数据操纵语言),insert,delete,update增删改语句,对表中的数据进行操作。3,DDL(数据定义语言),create,drop,alter,对表的结构的增删改操作。4,TCL(事务transaction控制语言),commit提交事务,rollback回滚事务。5,DCL(数据控制语言),grant授权,revoke撤销权限。...

2020-10-26 15:59:23 310

原创 网络编程TCP协议发送和接收数据

1,发送数据(1)创建客户端的Socket对象(Socket);(2)获取输出流(IO流),写数据;(3)释放资源。demo代码如下:public static void main(String[] args) throws IOException { //构造方法1 Socket socket1=new Socket(InetAddress.getByName("182.168.2.163"),10086); //构造方法2 //Socket socket2=ne

2020-10-14 11:46:16 486

原创 网络编程UDP协议方式

一,UDP发送和接受数据1,发送数据(1)创建发送端的 Socket对象(DatagramSocket);(2)创建数据,并把数据打包(DatagramPacket),且注意传入的参数格式;(3)调用 DatagramSocket对象的方法发送数据;(4)关闭demo代码如下;public static void main(String[] args) throws IOException { DatagramSocket ds=new DatagramSocket(); by

2020-10-12 20:34:03 217

原创 java.util包下的资源绑定器获取类路径下的.properties文件的key

该方法可直接替代前面的那一篇博客所使用的IO流获取的方式。使用资源绑定器,文件必须在类路径下,类路径就是src文件夹下,如下图:使用代码,且注意,里面的相对路径参数不带后缀public class ResourceBuddleDemo1 { public static void main(String[] args) { ResourceBundle rb=ResourceBundle.getBundle("ReflectPackage/infoClass");//不带后缀

2020-09-29 14:44:34 195

原创 在IDEA中获取的src下的文件的绝对路径的一句代码

文件必须在src中,比如“helloword.txt”代码如下:String path = Thread.currentThread().getContextClassLoader().getResource("ReflectPackage/helloworld.txt").getPath();System.out.println(path);结果为:

2020-09-29 14:15:22 1708

原创 java的反射机制操作字节文件的便利性(只需要更改配置文件而不用更改代码)

1,反射机制的作用:通过java语言中的反射机制可以操作(读改)字节码文件,也可以操作代码片段(class文件)。2,在java.lang.reflect包下3,反射机制有几个比较重要的类,比如Mrthod,Field,Constructor等。...

2020-09-29 11:10:59 161

原创 获取字节码的三种方式

1,通过静态方法Class c1=Class.forName(“包名+类名”,如"java.lang.String"),2,通过任何一个对象的.getClass方法(属于Object的方法)来获取。3,java中的所有类型都有一个属性,就是.class。public class ReflectTest01 { public static void main(String[] args) { Class c1=null; try { c1=

2020-09-29 10:06:10 1050

原创 使用实现Callable接口方式的方法去实现线程(该方法能得到返回值)

Callable和Runnable对比(1),Callable能接受一个泛型,然后在call方法中返回一个这个类型的值。而Runnable的run方法没有返回值(2),Callable的call方法可以抛出异常,而Runnable的run方法不会抛出异常。import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;

2020-09-28 15:13:07 671

原创 开发中怎么解决线程安全问题(三点理论)

直接使用synchronized?不,synchronized会让效率变低,响应时间变长,并发量降低,降低用户体验感。而是应该:1,尽量使用局部变量代替静态变量和实例变量。2,如果必须是实例变量,可以考虑创建多个对象,这样实例变量的内存就不共享了,一个线程对应一个对象,数据不共享那么久没有数据安全问题了。3,如果不能使用局部变量,不能将对象创建多个,那就使用synchronized,线程同步机制。...

2020-09-28 13:53:20 125 1

原创 除了创建Thread的子类之外另一种实现多线程的方式——实现Runnable接口

步骤:(1)定义一个类 MyRunnable实现Runnable接口(2)在 MyRunnable类中重写run()方法public class MyRunnable implements Runnable { @Override public void run() { for(int i=0;i<100;i++){ System.out.println(Thread.currentThread().getName()+": "+i);

2020-09-27 17:41:03 322

原创 线程的优先级(java)

1,调度模式:优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个,优先级高的线程获取的 CPU 时间片相对多一些。2,(1)java可以查看线程的优先级:setPriority(int i)方法,i默认为5,i为1-10;创建类:public class TestThreadDemo1 extends Thread{ public TestThreadDemo1(String name) { super(name); } public

2020-09-27 16:36:47 103

原创 进程线程20200925

1,进程(1)是正在运行的程序;(2)是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源。2,线程(1)是进程中的单个顺序控制流,是一条执行路径(2)单线程:一个进程如果只有一条执行路径,则称为单线程程序,就比如你正在设置IDEA的一些什么设置,打开了Setting,有窗体出现,你需要去更改。但是你不能在窗体还没有关闭的时候写代码,你只能点击右上角的×,将窗体关闭才能进行接下来的操作,这一次就是单线程。3,继承方式实现多线程(1)创建一个类继承自Thread类,并重写

2020-09-25 20:29:13 68

原创 Properties作为Map集合使用

1,Properties本质上是一个Map,但是不用去指定<键,值>类型,因为默认就是Object,想定义什么类型就定义什么类型。public static void main(String[] args) { Properties prop=new Properties(); prop.put(2015,"哈哈哈"); prop.put('b',98); System.out.println(prop); Set<Object> keySe

2020-09-25 10:59:10 515

原创 序列化流20200924

序列化流(1)一个对象要想被序列化,该对象所属的类必须必须实现 Serializable 接口(2)Serializable 是一个标记接口,实现该接口,不需要重写任何方法

2020-09-24 21:02:01 62

原创 字节打印流20200924

(1)PrintStream(String fileName):用指定的文件名创建新的打印流;(2)使用继承父类的方法写数据,查看的时候会转码;使用自己独有的方法写数据,查看的数据原样输出。

2020-09-24 19:11:06 318

原创 通过IO流复制单级和多级的文件夹20200923

1,复制单级文件夹package CasePackage;import java.io.*;public class CopyFoldDemo1 { public static void main(String[] args) throws IOException{ File srcFolder=new File("G:\\JAVA1"); String srcFoldername=srcFolder.getName(); File aimF

2020-09-23 20:04:33 131

原创 字符缓冲流20200922

1,不仅字节有缓冲流,字符也有缓冲流。字符缓冲流为BuferedWriter和BufferReader。字节缓冲流为BufferedInputStream和BufferedOutputStream。2,BuferedWriter和BufferReader有一些特有功能,比如写一个换行(根据系统):.newLine();或者读取一行:readLine(),若读到空行即为null。...

2020-09-22 17:29:05 77

原创 字节流20200922

1,字节流,(1)读取纯文本文件优先使用字符流;(2)图片、音频优先使用字节流;(3)不确定是啥,就使用字节流。字节就是byte,字符就是“A”,“@”这种,不同的编码方式占用不同的字节。2,FIleOutputStreat(String s),可以用来写入数据。在IO操作时可以使用.write(。。。)写入数据;在IO操作之后要使用.close()方法来释放系统资源。3,字节流写数据实现换行,在写完数据之后再写一句换行符号,window是“\r\n”,linux是“\n”,mac是“\r”,

2020-09-22 10:30:55 49

原创 递归20200921

1,递归就是在方法中调用方法本身,这个得好好注意学一下,因为leetcode中有好多题目都需要用递归来解决。2,递归的注意事项:(1)递归一定要有出口,要不然一直运行下去,内存溢出;(2)虽然递归有出口,但是次数也不要太多,要不然还是容易内存溢出。递归求阶乘:public static void main(String[] args) { System.out.println(jieCheng(0));}public static int jieCheng(int n){ if(n

2020-09-21 17:23:25 68

原创 File20200920

File类有一些方法,可以读取指定路径的文件夹,对指定路径进行增加文件夹、删除文件夹,等操作,到时候用哪儿一个查哪儿一个就行。

2020-09-21 16:22:21 60

原创 Map20200918

1,Map<>添加元素用的是put方法,并且Map的实现也是要使用实现Map接口的子类,比如HashMap等。2,Map中的**“键”不能重复,当重复的时候,后来的“值”**会将原来的值给替代掉。3,遍历Map的两种方式:首先定义一个Map:Map<String,String> studentMap=new HashMap<>();studentMap.put("csu","中南大学");studentMap.put("ncwu","华北水利水电大学");

2020-09-18 20:40:01 66

原创 泛型20200918

1,泛型的本质是参数化,只有在具体使用时传入具体的类型。好处1:将问题提前;好处2:避免强制类型转换;2,泛型类,

2020-09-18 09:28:58 119 1

原创 Set集合相关20200917

1,Set集合,继承自Collection,不包含重复的元素。没有带索引的方法,所以不能使用普通for循环。而进行遍历时,不一定按照顺序取值。2,哈希值是jdk通过字符串或者数值或者对象的地址经过运算得到的一个整型的数值。默认情况下,不同对象的哈希值是不相同的,但是通过在类中对哈希值进行重写,可以实现哈希值相同的情况。...

2020-09-17 17:37:39 109

原创 数据结构20200916

1,栈,先进后出。队,先进先出。2,数组,查询效率高,操作效率低。链表,查询效率低,操作效率高。3,List集合的子类特点,主要有两个子类:ArrayList和LinkedList。ArrayList:实际上是“数组”;LinkedList:实际上是“链表”;4,LinkedList之前没见过,它是属于链表的,所以有一些独有的方法需要知道。...

2020-09-16 11:16:56 51

原创 增强for循环

1,增强for循环,格式为for(元素数据类型 变量名:数组或者Collection集合){在循环体中使用该变量即可,该变量就是元素}实际例子如下:public static void main(String[] args) { int[] arr={10,6,5,9}; for(int i:arr){ System.out.println(i); }}增强for循环的内部原理为Iliterator迭代器,还会是如果预期值与实际值不一样,那么就会引起

2020-09-16 10:00:44 391

原创 集合20200915

1,集合分为单列集合(collection)和双列集合(map),collection又分为可重复(List)与不可重复(Set),上述集合为接口,不能直接创建对象。2,collection的遍历可以使用Iterator it1=arrylist的名字.iterator();这个迭代器的方法。然后it1经常使用的有两种方法.next()和.hasnext()。3,通过迭代器获取元素时,都要判断预期修改值与实际修改值是否相同,如果不相同,就会抛出并发修改异常(ConcurrentModificati

2020-09-15 20:29:37 98

原创 java的浅克隆

1,创建对象也可以通过克隆的方式,这种方法的好处是当克隆对象发生改变时,不会影响原来被克隆的那个对象。StudentClass LiMing1=new StudentClass("LiMing",23);StudentClass Liming2=Liming1;//我只要对李明2进行操作,比如定义他的班级寝室,李明1的也会随之改变,但需求并不是这样,李明1和李明2只是重名。StudentClass Liming3=LiMing1.clone();//这个时候李明3改变的话,李明就不会改变。但是!

2020-09-14 18:04:15 107

原创 2020-09-13

今天开开组会,和老师同门吃了个饭,把东西收拾一下,明天上午去武汉实习,实习一年,,,他们公司搞c++,我要自学java。其实差不多,还是靠自己。

2020-09-13 22:58:52 46

原创 2020-09-12

自定义异常1,首先定义一个自己的异常类继承自Exception,在异常类中定义两个构造函数,一个无参数,一个有参数。有参数的构造函数的形参就是要传入的,比如整形,字符等,在函数体里使用super(传入的参数);就可。2,定义功能类,在功能类中添加需要调用自己定义异常的函数,比如判断语句public void 函数名(此函数自己的参数,不是刚刚异常的参数) throws 刚刚定义的异常类名字{if(判断条件){函数体} else{throw new 刚刚定义的异常类名字(传入异常的参数,此

2020-09-12 17:41:06 53

原创 2020-09-11

1,jvm处理异常,(1)名称,位置,原因输出在控制台.(2)程序终止执行。2,try{}catch(异常){}的使用,catch里的参数为异常的类型。3,编译时异常和运行时异常的区别。(1)编译时的异常,都是Exception类及其字类,都必须进行处理。(2) 运行时异常,都是RuntimeException类及其子类,无需异常处理。4,throws方式处理异常public void 方法() throws 异常类名 {}5,还可以自定义异常。...

2020-09-11 21:33:42 244

原创 2020-09-10

1,在开发时,调用包装类类型之前需要做是否为空的判断。但是一个良好的习惯就是只要是对象在使用时就进行是否为null的判断。2,SimpleDataFormat类使用,将日期格式字符串使用parse转化为日期时,要将SimpleDataFormat构造函数的参数格式与要转换的字符串格式相匹配。且有异常提醒,将光标定位在异常题型处用快捷键【IDEA】,alt+enter键选择第一个自动生成抛出异常。...

2020-09-10 21:38:22 67

原创 Integer

1,一般用Integer的静态方法.valueOf来创建对象,且Integer能读取整型和字符串型的数字,对于字符串型的字母而不能创建。2,int和String之间的相互转换。(1)int转化为String可以使用“”+int的形式,可以使用String的静态方法.valueOf();(2)String转化为int,可以先将String转化为Integer,直接调用Integer的静态方法.valueOf(String:…)方法,再将Integer对象调用.intValue()方法,也可以直接调用Inte

2020-09-09 21:39:33 66

原创 2020-09-09

这是第一篇博客,今天考完了数学考试。接下来就是java的学习时间了。现在已经学过了Javase的语法及面向对象的一些基础内容,接下来的一年时间将会以文字或者其他形式的文字记录自己每天的学习情况,也是希望通过这个方法让自己坚持下来,争取明年秋招找到一个好的工作。...

2020-09-09 19:33:21 47

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除