
Java基础知识记
文章平均质量分 78
Java 基础知识
Only you, only you!
这个作者很懒,什么都没留下…
展开
-
Java 零碎补充
cmd 命令行编译乱码问题public class Hello { public static void main(String[] args) { System.out.println("你好"); }}// 编译时指定编码方式,避免乱码javac -encoding utf8 Hello.java在 .java 文件所在目录,输入 cmd,即可进入当前目录,方便快捷!文档注释javadoc -encoding utf8 -version -author -d mydir H原创 2021-10-16 16:12:13 · 156 阅读 · 0 评论 -
正则表达式基础
使用工具 RegexBuddy。参考正则表达式的百度词条。参考常用正则表达式(菜鸟教程)。参考 Java正则表达式使用示例(菜鸟教程)和官方API java.util.regex 包。易忽略的正则知识点特殊符号(除了 ^ 和 -)包含在 [] 中,将失去其特殊含义,就表示其自身。如 [\d.-+] 匹配数字、小数点、- 和 +...原创 2020-06-29 17:42:50 · 286 阅读 · 0 评论 -
Java---多线程入门
线程创建Threadpackage thread;class MyThread extends Thread { @Override public void run() { for(int i = 0; i < 10; i++) { System.out.println("MyThread is running..."); } }}public class StartThread01 { public原创 2020-06-28 23:18:07 · 224 阅读 · 0 评论 -
Java---I/O入门
Java I/O 对文件操作,其实是通过操作系统进行操作的。File统计文件数量及大小package file;import java.io.File;// 统计某路径(文件夹)下文件数、文件夹数及所占空间大小(Byte)public class DirCount { private String path; private File file; private long len; private long dirCount = -1; // 去掉文件夹原创 2020-06-27 13:11:44 · 184 阅读 · 0 评论 -
Java编程思想第四版阅读笔记(15章 泛型)
简单泛型package generics;class Automobile {}public class Holder1 { private Automobile a; // Holder1 只能持有 Automobile 这一种类型的对象 public Holder1 (Automobile a) { this.a = a; } public Automobile get() { return a; }}packa原创 2020-06-26 10:02:54 · 336 阅读 · 0 评论 -
Java编程思想第四版阅读笔记(21章 并发)
21.2基本的线程机制Thread.State查看Java官方文档Thread类,包含一个子类枚举类State,枚举了线程的所有状态如下:21.2.1 Runnablepackage concurrency;/** * 打印发射之前的倒计时 */public class LiftOff implements Runnable{ protected int count...原创 2019-08-15 23:35:25 · 288 阅读 · 0 评论 -
Java编程思想第四版阅读笔记(1章-14章)
构造器初始化初始化顺序先根据成员变量定义顺序初始化成员变量,再调用构造函数。package constructorInitialization;class Window{ Window(int marker){ System.out.println("Window(" + marker +")"); }}class House{ Window w1 = new Window(1); House(){ System.out.pri原创 2020-06-12 13:38:34 · 327 阅读 · 0 评论 -
J2EE基础
ServletServlet 第一个例子工程源码(Tomcat 需要手动设置下,见本节后续配置)一切配置完,启动 Tomcat,在浏览器输入 http://127.0.0.1/j2ee/hello,出现下面画面。指定项目输出到classes目录把项目的class文件输出由原来的 j2ee/bin 设置到 j2ee/web/WEB-INF/classes下,步骤:项目右键->pr...原创 2020-05-07 11:12:47 · 221 阅读 · 0 评论 -
Java---注解入门
自定义注解自定义注解需要利用元注解,元注解是基本注解,用来修饰别的注解。关于元注解本文后部分详细讲解。非注解方式DBUtilpackage util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException; public class DBUtil { ...原创 2020-01-19 14:56:53 · 297 阅读 · 0 评论 -
Java---反射入门
类对象所有的类,都存在一个类对象,提供类的属性和方法等信息。一个ClassLoader下,一种类,只会有一个类对象存在。获取类对象通过Class.forName或getClass获取类对象,会导致静态初始化块的执行。多次获取类对象也只会执行一次静态初始化块。Hero.class不会执行静态初始化块。package reflection;import character.Hero;...原创 2020-01-19 00:56:04 · 150 阅读 · 0 评论 -
Java---JDBC入门
JDBC (Java DataBase Connection) 是通过JAVA访问数据库。MySQL-JDBC驱动包下载地址。JDBC的Hello World导入MySQL-JDBC驱动包:package jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLExceptio...原创 2020-01-18 21:18:54 · 240 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第1章【Java语言概述与开发环境】
编译型语言和解释型语言编译型语言和解释型语言(百度百科)编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器(翻译成的是特定平台的机器语言,要是跨平台还是需要拷贝源代码再重新编译),跨平台性差些。如C、C++、Delphi等解释性语言:编写的程序不进行预先编译,以文本方式存储程序代...原创 2018-09-20 20:56:24 · 2141 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第2章【UML】
UML(Unified Modeling Language)PowerDesigner16.5建模工具提供了UML的如下12种图Use Case Diagram(用例图)用例图用于描述系统提供的系列功能,每个用例代表一个功能。在需求分析阶段使用。如上图,可以表示论坛网站上的几个基本功能,角色(Actor)与用例(Use Case)之间用实线连接,用例之间的依赖用虚线连接。...原创 2018-09-21 12:34:00 · 754 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第3章【数据类型与运算符】
Java的官方API下载Java语言是一门强类型语言。强类型含义:所有变量必须先声明,后使用;指定类型的变量只能接受类型与之匹配的值注释//单行注释/*多行注释*//***文档注释*/标识符字母、下划线、美元符号、数字组成。字母、下划线、美元符号开头。(据说这里的字母不仅限于26个英文字母,)标识符不能是Java关键字和保留字。也不能是true,false,nu...原创 2018-09-21 17:40:55 · 471 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第4章【流程控制与数组】
Java7增强后的switch语句switch后的控制表达式只能是byte、short、char、int、枚举类型和java.lang.String类型。char c = 'A';switch(c){ case 'A': System.out.println("Excellent"); break; case 'B': System.out.println("Pass");...原创 2018-09-21 22:37:34 · 1379 阅读 · 1 评论 -
《疯狂Java讲义(第4版)》-----第4章【习题解答】
本文参考李刚著作《疯狂Java讲义》(第四版)产生长度为6的随机字符串//产生长度为6的随机字符串public class Random_str{ public static void main(String[] args){ String result=&amp;quot;&amp;quot;; for(int i=0;i&amp;amp;lt;6;i++){ in...原创 2018-03-21 20:33:29 · 3915 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第4章【控制台五子棋】
特此说明:本文参考《疯狂Java实战演义》开发游戏:控制台五子棋开发工具:记事本五子棋流程分析需求分析这个游戏比较简单,我们要完成人机下棋,需要棋盘类、棋子类和游戏类。棋盘和棋子都可以看成是游戏的一部分,构成聚合关系。然后根据上面的游戏流程分析。重点还是自上而下地进行结构化设计程序。开始游戏强行退出或重玩游戏强行退出或重玩游戏用户输入落子坐标判断落子坐标是否合法判断输赢和棋...原创 2018-09-22 22:50:19 · 871 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第5章(Java核心)【面向对象(上)】
类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在。比如人类和具体的人。类的定义及对象的创建一个类包括成员变量、方法、构造器说明:static修饰的成员变量、方法是类级别的,属于该类本身及其所有实例,可以由类及其实例对象调用。没有static修饰的,则是对象(实例)级别的,没有实例则无法使用。类的各成员定义顺序随意,各成员之间可以互相调用,但注意static修饰的只能调...原创 2018-09-30 14:31:56 · 1293 阅读 · 1 评论 -
《疯狂Java讲义(第4版)》-----第6章【面向对象(下)】(包装类、final、抽象类、接口)
包装类自动拆箱和自动装箱基本数据类型包装类byteByteshortShortcharCharacterintIntegerlongLongfloatFloatdoubleDoublebooleanBoolean基本数据类型的变量与字符串之间的转换以Integer类为例,官方文档里面提供了两个方法:publ...原创 2018-10-01 15:43:37 · 300 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第6章【面向对象(下)】(内部类)
内部类内部类就是定义在类内部的类,可以 是成员内部类(类的第五种成员,分为静态内部类和非静态内部类),也可以定义在方法内部(局部内部类)。宿主类不能访问内部类的成员。可以通过”静态内部类名.静态内部类静态成员“和”内部类对象.内部类成员“来访问非静态内部类没有static修饰的成员内部类就是非静态内部类。非静态内部类不有静态成员。访问权限的思考?类的上级是包,包的上级是工程,所以类的访问...原创 2018-10-02 00:58:28 · 565 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第6章【面向对象(下)】(命令模式、Lambda、枚举类、垃圾回收、jar)
命令模式命令模式,参考下面代码,就能领悟到,想做出怎样的处理,就怎么去覆盖接口中的抽象方法!下面代码中接口Command中定义一个对数组处理的方法,但没说怎么处理(毕竟是抽象方法嘛),然后让其他类来实现这个接口,顺便实现这个接口的方法,他们按照何种方式实现,以后调用的时候就怎么去处理数组了。interface Command{ public abstract void process(int...原创 2018-10-02 14:18:07 · 441 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第7章【Java基础类库】
笔者认为,《疯狂Java讲义(第4版)》这本书的前6章是Java语言的核心,前4章是结构化程序设计的核心,第5章和第6章是Java面向对象的核心。从第七章开始,都是在这些核心基础知识上的扩展了,很多内容可以先熟悉一遍即可,用的时候多查本书以及多查看官方文档即可。Java程序入口函数main及Scanner类main函数public static void main(String[] args...原创 2018-10-02 22:40:32 · 524 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第8章【Java集合】(Collection、Iterator、Set)
Java集合概述Java集合里存放的只能是对象(严格的说是对象的引用变量)。原创 2018-10-03 18:09:48 · 257 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第8章【Java集合】(List)
Listimport java.util.ArrayList;public class Hello{ public static void main(String[] args){ ArrayList books = new ArrayList(); books.add(new String("计算机网络")); books.add(new String("计算机组成原理"...原创 2018-10-03 21:33:43 · 591 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第8章【Java集合】(Queue)
Queue队列啦!一般不可随机访问队列中的元素。Queue官方文档如下:PriorityQueue优先队列,学过数据结构应该就清楚是根据堆排序原理实现的。查看官方文档,PriorityQueue的构造器可以传入Comparator对象,这说明可以自己去定义排序的方法,由于之前在TreeSet部分已经详细说明。此处不在赘述。import java.util.PriorityQueue;...原创 2018-10-03 23:49:47 · 262 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第8章【Java集合】(Map、Collections)
Mapimport java.util.Map;import java.util.HashMap;public class Hello{ public static void main(String[] args){ Map map = new HashMap(); map.put("Tom", 98); map.put("Jack", 89); map.put("...原创 2018-10-04 12:36:38 · 259 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第9章【泛型】
把对象放入Java集合中,编译的时候都会当成Object类型(运行时还是原来的实际类型),各种对象都可以放入集合,但是带来的问题是从集合中取对象的时候可能要进行强制类型转换了。如果集合中放了各种对象,特别是集合元素没有顺序的话,程序员只知道当初放进去很多类型的对象,取出的时候却不知道哪个对象是什么类型的了,不知道要强转成什么类型,结果是无法取出或者硬转成可能错误的类型报异常。使用泛型的集合就是说,...原创 2018-10-04 20:34:38 · 586 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第10章【异常处理】
异常处理可以提高程序的健壮性、呈现功能给用户更加友好。Java异常机制主要关键字:try、catch、finally、throw、throws。throws关键字在声明方法时候使用,用于声明该方法可能抛出的异常。而throw关键字用于抛出一个实际的异常。Java把异常分为两种,Checked异常(可以在编译阶段被处理的异常)和Runtime异常,强制程序处理所有的Checked异常。异常处理机制...原创 2018-10-05 15:08:12 · 424 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第11章【AWT编程】(AWT容器、布局管理器)
AWT(Abstract Window Toolkit):Sun公司最早提供的GUI库。原创 2018-10-06 15:19:28 · 347 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第11章【AWT编程】(AWT常用组件、事件处理)
说明:GUI部分,特别是Swing部分,很多例子代码量较大,为了学习的高效性,理解清楚作者的讲解及源代码即可,做具体案例的时候,能熟练查询使用。所以,GUI部分,笔者不再一行一行写代码,重在理解,达到用时可速查的效果即可AWT常用组件虽说是常用组件,如果不经常使用,还是比较陌生的!!!暂且根据书本列出来一些,先结合书上实例认识之,待之后结合实际案例选择用之、研究之(参看官方API)!Butt...原创 2018-10-08 20:00:01 · 229 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第16章【多线程】(线程的创建及生命周期)
线程的独立运行的,他并不知道进程是否还有其他线程存在当操作系统创建一个进程时,必须为该进程分配独立的内存空间,并分配大量的相关资源;但创建一个线程则简单得多,因此使用多线程来实现并发比使用多进程实现并发的性能要高得多多线程是非常有用的,一个浏览器必须能同时下载多个图片;一个Web服务器必须能同时响应多个用户请求;Java虚拟机本身就在后台提供了一个超级线程来进行垃圾回收;GUI应用也需要启动...原创 2018-12-10 16:35:49 · 622 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第16章【多线程】(控制线程、线程同步)
控制线程join线程等那个线程做完后,当前线程再做!import java.lang.Thread;public class MyThread extends Thread{ public MyThread(String name){ super(name); } public void run(){ for(int i = 0; i &lt; 4; i++){ ...原创 2018-12-10 19:48:15 · 1008 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第16章【多线程】(线程通信、线程池)
线程通信传统的线程通信用synchonized同步的情况下,可以使用Object的三个方法:wait():释放同步监视器,直到其他线程调用该同步监视器的notify()或notifyAll()方法notify():唤醒此同步监视器上等待的单个线程(如有多个等待,随便唤醒一个)notifyAll():唤醒此同步监视器上的所有线程使用Condition控制线程通信用Lock对象同步的...原创 2018-12-10 21:40:00 · 443 阅读 · 0 评论 -
《疯狂Java讲义(第4版)》-----第18章【类的加载机制与反射】
JVM进程终止的情况程序运行到最后正常结束程序运行到System.exit()或Runtime.getRuntime().exit()程序执行过程中遇到未捕获的异常或错误而结束程序所在平台强制结束了JVM进程类的加载下图摘自《深入理解Java虚拟机:JVM高级特性与最佳实践》类加载:将类的class文件读入内存,并为之创建一个java.lang.Class对象。类加载过程由类加...原创 2018-12-12 23:06:42 · 1777 阅读 · 3 评论