Java基础
Yuhang_Z
这个作者很懒,什么都没留下…
展开
-
Java基础——常用类String及相关字符串操作
记录Java中的常用类String的构造器、方法与关于字符串的操作。String的构造器: String() 无参构造 String(byte[] bytes) 根据字节数组创建String对象 String(byte[] bytes, int offset, int length) 根据字节数组bytes中从offset开始的length个...原创 2019-01-12 22:37:32 · 148 阅读 · 0 评论 -
Effective Java---------避免创建不必要的对象
使用静态工厂方法返回可重用对象一般来说,最好能重用单个对象,而不是在每次需要的时候就创建一个相同功能的新对象。重用方式既快速又流行。每次都会创建对象的例子:String s = new String("s");每次执行这个语句都会创建一个新的实例,可以做如下改进:String s = "s";这个版本只用了一个实例,而不是每次执行都创建一个新的实例。在创建可重用对象...原创 2019-06-05 17:14:05 · 149 阅读 · 0 评论 -
Effective Java---------用静态工厂方法替代构造器
对于类而言,要获取它自身的一个实例,最传统的方法是提供一个公有的构造器。还有一种方法类可以提供一个公有的静态工厂方法他只是一个返回该类的实例的静态方法。例如:Boolean类的静态工厂方法,这个方法将boolean基本类型值转换成了一个Boolean对象引用:public static Boolean valueOf(boolean b) { return (b ? TRUE : F...原创 2019-05-28 15:58:18 · 191 阅读 · 0 评论 -
jar包无法运行的解决方法
1.显示无法找到Main Class:在打包时,应该正确设置程序入口,在使用idea打包时,应填好Main Class与Class Path,Main Class的格式为jar包中入口的完整文件名(不含文件的后缀)。2.显示unable to access jarfile:一定是路径错误,可能是写脚本时将jar包的路径写错,或是文件名写错。3.双击jar包闪退:(1)更改注...原创 2019-02-26 19:12:40 · 8163 阅读 · 0 评论 -
执行jar包AES加密数据,输出文件到当前目录
先准备加密代码:要求用户输入需要加密的数据,完成后在jar包同级目录下创建一个新的文件(代码会被打成jar包,双击jar包执行),文件中写入加密的密钥、加密前数据、加密后数据。package myblog.other;import java.io.File;import java.io.FileOutputStream;import java.security.Key;impo...原创 2019-02-26 18:52:27 · 648 阅读 · 0 评论 -
Java基础——线程的3种创建方式
第一种方式:继承Thread类,重写run方法public class Thread01 extends Thread { @Override public void run() { System.out.println(Thread.currentThread()); }}public class ThreadTest01 { publ...原创 2019-02-13 21:56:30 · 155 阅读 · 0 评论 -
Java基础——死锁
多个线程同步时,如果获得的锁的顺序不一致,可能会导致线程相互等待的情况,称为死锁。一个简单死锁的代码:class ThreadDeadLock1 implements Runnable { Object o1; Object o2; public ThreadDeadLock1(Object o1, Object o2) { this.o1 =...原创 2019-02-18 22:01:14 · 187 阅读 · 0 评论 -
Java基础——线程同步
1.同步/异步编程异步编程模型:t1线程与t2线程各自执行,两个线程之间互不干扰;同步编程模型:t1线程与t2线程执行,当t1线程必须等t2线程结束之后才能执行,即同步编程模型。2.什么时候进行同步,为什么引入同步机制为了数据的安全性,尽管应用程序的使用率降低,但是为了保证数据是安全的,必须加入线程同步机制,线程同步机制使程序变成了(等同)单线程; 什么条件下使用线程同步:必须是...原创 2019-02-18 21:50:19 · 198 阅读 · 0 评论 -
Java基础——File
File概述File类和流无关,不能通过该类完成文件的读写。 File类是文件和目录的抽象表示形式。 File代表的是硬盘上的目录与文件。File常用方法构造方法:第一种:File f1 = new File("F:/temp");第二种:构造方法的第一个参数指定文件夹 File f2 = new File("F:/temp", "sub1");...原创 2019-02-05 20:05:42 · 203 阅读 · 0 评论 -
Java基础——IO流
IO流概述什么是流?流是有起点和终点的有序字节序列的集合。流的分类输入流/输出流:流根据方向可以分为输入流与输出流,输入与输出是相对于内存而言的,从内存村来就是输出,到内存中就是输入。 字节流/字符流:流根据读取数据的方式可以分为字节流与字符流,字节流是按照字节的方式读取,字符流是按照字符的方式读取,一次读取2个字节(Java中1个字符占2个字节)。 节点流/处理流:如果直接从...原创 2019-02-01 17:09:09 · 283 阅读 · 0 评论 -
Java基础——获取properties文件的三种方式
第一种:import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class Test01 { public static void main(String[] args) { Properties properties = new Pro...原创 2019-02-01 13:36:09 · 205 阅读 · 0 评论 -
JDBC编程步骤
第一步:注册驱动注册驱动有两种方式:第一种方式//创建驱动对象java.sql.Driver driver = new com.mysql.jdbc.Driver();//完成驱动注册DriverManager.registerDriver(driver);第二种方式//将com.mysql.jdbc.Driver这个类加载到虚拟机中,加载过程中自动执行静态代码块完...原创 2019-01-31 15:08:17 · 295 阅读 · 0 评论 -
Java基础——List、TreeMap的排序
1.List排序List集合中的元素的特点,有序可重复。如果想以特定方式排序,需要通过以下几种方式:使用list的sort方法、使用Collections中的sort方法。1.使用list的sort方法package myblog.javabasis.collection.Collection.List;//新建一个Student类并重写toString方法public cla...原创 2019-01-20 21:29:47 · 979 阅读 · 0 评论 -
Java基础——HashMap扩容2倍
HashMap扩容2倍在HashMap中,执行put方法时,会对添加的key进行运算得出对应的hash值,再根据hash值计算得出对应的hash桶坐标节点tab[i]。if ((p = tab[i = (n - 1) & hash]) == null) tab[i] = newNode(hash, key, value, null);其中i = (n-1) & h...原创 2019-01-13 20:20:45 · 3213 阅读 · 0 评论 -
Java基础——HashMap存储原理简单介绍put与get方法
HashMap的继承关系在Java1.8版本中,HashMap继承了AbstractMap抽象类并实现了Map接口。 HashMap的存储原理HashMap底层是Hash表,由数组、单向链表和红黑树构成,该数组为Node类型、数组中每一个元素对应一条...原创 2019-01-13 18:13:53 · 558 阅读 · 0 评论 -
String、StringBuilder、StringBuffer的区别
本文介绍有关String、StringBuilder、StringBuffer的区别。String: /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ private in...原创 2019-01-13 14:57:10 · 120 阅读 · 0 评论 -
Effective Java---------遇到多个构造器参数时考虑使用构建器
静态工厂方法和构造器有个共同的局限性,他们不能很好地扩展到大量的可选参数。对于有多种可选参数的类而言,可以使用以下几种方式:1、重叠构造器重叠构造器,提供的第一个构造器只有必要的参数,第二个构造器有一个可选参数,第三个构造器有两个可选参数,以此类推,如下代码所示。public class Person { private String name ; private i...原创 2019-05-29 16:11:01 · 134 阅读 · 0 评论