Java中级
自学Java的小白12
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java自学-图形界面 皮肤
Swing 皮肤 Look And FeelJava提供了非常便捷的方式切换界面风格步骤 1 : 设置皮肤只需要提供一句代码javax.swing.UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");就可以把所有的组件切换成不同的风格。注: 这句话需要加在最前面,如果已经创建了界面,再加这个有时候不能正常...原创 2019-07-28 15:37:23 · 592 阅读 · 0 评论 -
Java自学-JDBC execute与executeUpdate的区别
JDBC中 execute与executeUpdate的区别execute与executeUpdate的区别步骤 1 : 相同点execute与executeUpdate的相同点:都可以执行增加,删除,修改package jdbc; import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQ...原创 2019-06-29 07:17:49 · 5755 阅读 · 0 评论 -
Java自学-JDBC 预编译PreparedStatement
在JDBC中使用预编译Statement 以及它的优点步骤 1 : 使用PreparedStatement和 Statement一样,PreparedStatement也是用来执行sql语句的与创建Statement不同的是,需要根据sql语句创建PreparedStatement除此之外,还能够通过设置参数,指定相应的值,而不是Statement那样使用字符串拼接注: 这是JAVA里唯...原创 2019-06-28 10:00:35 · 534 阅读 · 0 评论 -
Java自学-多线程 线程池
Java 如何开发一个自定义线程池每一个线程的启动和结束都是比较消耗时间和占用资源的。如果在系统中用到了很多的线程,大量的启动和结束动作会导致系统的性能变卡,响应变慢。为了解决这个问题,引入线程池这种设计思想。线程池的模式很像生产者消费者模式,消费的对象是一个一个的能够运行的任务步骤 1 : 线程池设计思路线程池的思路和生产者消费者模型是很接近的。准备一个任务容器一次性启动10个...原创 2019-06-24 10:15:49 · 161 阅读 · 0 评论 -
Java自学-JDBC 查询
在JDBC中使用ResultSet查询SQL语句执行查询SQL语句步骤 1 : 查询语句executeQuery 执行SQL查询语句注意: 在取第二列的数据的时候,用的是rs.get(2) ,而不是get(1). 这个是整个Java自带的api里唯二的地方,使用基1的,即2就代表第二个。另一个地方是在PreparedStatement这里package jdbc; import ...原创 2019-06-27 07:05:37 · 253 阅读 · 0 评论 -
Java自学-JDBC 增、删、改
JDBC 增、删、改CRUD是最常见的数据库操作,即增删改查C 增加(Create)R 读取查询(Retrieve)U 更新(Update)D 删除(Delete)在JDBC中增加,删除,修改的操作都很类似,只是传递不同的SQL语句就行了。步骤 1 : 增加这段代码就是Hello JDBC中的代码,用于向数据库中插入数据package jdbc; import java....原创 2019-06-27 06:59:40 · 206 阅读 · 0 评论 -
Java自学-多线程 交互
Java 线程之间的交互 wait和notify线程之间有交互通知的需求,考虑如下情况:有两个线程,处理同一个英雄。一个加血,一个减血。减血的线程,发现血量=1,就停止减血,直到加血的线程为英雄加了血,才可以继续减血步骤 1 : 不好的解决方式故意设计减血线程频率更高,盖伦的血量迟早会到达1减血线程中使用while循环判断是否是1,如果是1就不停的循环,直到加血线程回复了血量这是不...原创 2019-06-23 10:10:04 · 218 阅读 · 0 评论 -
Java自学-JDBC Hello JDBC
JDBC基础JDBC (Java DataBase Connection) 是通过JAVA访问数据库步骤 1 : 为项目导入mysql-jdbc的jar包访问MySQL数据库需要用到第三方的类,这些第三方的类,都被压缩在一个叫做Jar的文件里。为了代码能够使用第三方的类,需要为项目导入mysql的专用Jar包。该包mysql-connector-java-5.0.8-bin.jar可以在...原创 2019-06-26 07:55:17 · 157 阅读 · 0 评论 -
Java自学-多线程 死锁
Java 演示多线程死锁当业务比较复杂,多线程应用里有可能会发生死锁步骤 1 : 演示死锁线程1 首先占有对象1,接着试图占有对象2线程2 首先占有对象2,接着试图占有对象1线程1 等待线程2释放对象2与此同时,线程2等待线程1释放对象1就会。。。一直等待下去,直到天荒地老,海枯石烂,山无棱 ,天地合。。。package multiplethread; import ...原创 2019-06-22 12:28:02 · 159 阅读 · 0 评论 -
Java自学-多线程 线程安全的类
Java常见的线程安全相关的面试题步骤 1 : HashMap和Hashtable的区别HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式区别1:HashMap可以存放 nullHashtable不能存放null区别2:HashMap不是线程安全的类Hashtable是线程安全的类步骤 2 : StringBuffer和StringBuilder的区...原创 2019-06-22 10:09:34 · 123 阅读 · 0 评论 -
Java自学-多线程 原子访问
多线程 原子访问步骤 1 : 原子性操作概念所谓的原子性操作即不可中断的操作,比如赋值操作int i = 5;原子性操作本身是线程安全的但是 i++ 这个行为,事实上是有3个原子性操作组成的。步骤 1. 取 i 的值步骤 2. i + 1步骤 3. 把新的值赋予i这三个步骤,每一步都是一个原子操作,但是合在一起,就不是原子操作。就不是线程安全的。换句话说,一个线程在步骤1 取...原创 2019-06-25 15:01:33 · 225 阅读 · 0 评论 -
Java自学-Lambda 聚合操作
java 集合的聚合操作步骤 1 : 传统方式与聚合操作方式遍历数据遍历数据的传统方式就是使用for循环,然后条件判断,最后打印出满足条件的数据for (Hero h : heros) { if (h.hp > 100 && h.damage < 50) System.out.println(h.name);}使用聚合操作方式,画风就发生了...原创 2019-06-17 16:48:44 · 1681 阅读 · 0 评论 -
Java自学-多线程 Lock对象
多线程 Lock对象与synchronized类似的,lock也能够达到同步的效果步骤 1 : 回忆 synchronized 同步的方式首先回忆一下 synchronized 同步对象的方式当一个线程占用 synchronized 同步对象,其他线程就不能占用了,直到释放这个同步对象为止package multiplethread; import java.text.Simp...原创 2019-06-25 07:03:05 · 141 阅读 · 0 评论 -
Java自学-多线程 同步synchronized
Java 多线程同步 synchronized多线程的同步问题指的是多个线程同时修改一个数据的时候,可能导致的问题多线程的问题,又叫Concurrency 问题步骤 1 : 演示同步问题假设盖伦有10000滴血,并且在基地里,同时又被对方多个英雄攻击就是有多个线程在减少盖伦的hp同时又有多个线程在恢复盖伦的hp假设线程的数量是一样的,并且每次改变的值都是1,那么所有线程结束后,盖伦应...原创 2019-06-21 10:54:09 · 304 阅读 · 0 评论 -
Java自学-泛型 泛型转型
Java 中的子类泛型转型成父类泛型步骤 1 : 对象转型根据面向对象学习的知识,子类转父类 是一定可以成功的package generic; import charactor.ADHero;import charactor.Hero; public class TestGeneric { public static void main(String[] args) {...原创 2019-06-11 09:29:00 · 386 阅读 · 0 评论 -
Java自学-多线程 常见线程方法
Java 常见的线程方法示例 1 : 当前线程暂停Thread.sleep(1000); 表示当前线程暂停1000毫秒 ,其他线程不受影响Thread.sleep(1000); 会抛出InterruptedException 中断异常,因为当前线程sleep的时候,有可能被停止,这时就会抛出 InterruptedExceptionpackage multiplethread; pub...原创 2019-06-20 07:35:48 · 144 阅读 · 0 评论 -
Java自学-多线程 启动一个线程
Java 创建一个线程的三种方式多线程即在同一时间,可以做多件事情。创建多线程有3种方式,分别是继承线程类,实现Runnable接口,匿名类步骤 1 : 线程概念首先要理解进程(Processor)和线程(Thread)的区别进程:启动一个LOL.exe就叫一个进程。 接着又启动一个DOTA.exe,这叫两个进程。线程:线程是在进程内部同时做的事情,比如在LOL里,有很多事情要同时做,...原创 2019-06-19 21:16:25 · 745 阅读 · 0 评论 -
Java自学-JDBC 事务
如何在JDBC中使用事务步骤 1 : 不使用事务的情况没有事务的前提下假设业务操作是:加血,减血各做一次结束后,英雄的血量不变而减血的SQL不小心写错写成了 updata(而非update)那么最后结果是血量增加了,而非期望的不变package jdbc; import java.sql.Connection;import java.sql.DriverManager;i...原创 2019-07-05 06:57:38 · 131 阅读 · 0 评论 -
Java自学-JDBC 获取自增长id以及表的元数据
JDBC 获取自增长id以及表的元数据步骤 1 : 获取自增长id在Statement通过execute或者executeUpdate执行完插入语句后,MySQL会为新插入的数据分配一个自增长id,(前提是这个表的id设置为了自增长,在Mysql创建表的时候,AUTO_INCREMENT就表示自增长)CREATE TABLE hero ( id int(11) AUTO_INCREMEN...原创 2019-06-30 10:20:21 · 290 阅读 · 0 评论 -
Java自学-JDBC DAO
基于JDBC设计DAO的实例DAO=DataAccess Object数据访问对象实际上就是运用了ORM中的思路,把数据库相关的操作都封装在这个类里面,其他地方看不到JDBC的代码步骤 1 : DAO接口package jdbc; import java.util.List; import charactor.Hero; public interface DAO{ ...原创 2019-07-15 12:33:08 · 251 阅读 · 0 评论 -
Java自学-图形界面 工具栏
Swing如何使用工具拦JToolBar工具栏用于存放常用的按钮步骤 1 : 工具栏package gui; import java.awt.BorderLayout; import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMe...原创 2019-07-23 14:31:52 · 403 阅读 · 0 评论 -
Java自学-图形界面 Swing中的线程
Swing中的线程步骤 1 : 三种线程在Swing程序的开发中,需要建立3种线程的概念初始化线程初始化线程用于创建各种容器,组件并显示他们,一旦创建并显示,初始化线程的任务就结束了。事件调度线程通过事件监听的学习,我们了解到Swing是一个事件驱动的模型,所有和事件相关的操作都放是放在事件调度线程 (Event Dispatch)中进行的。比如点击一个按钮,对应的Action...原创 2019-07-27 13:22:22 · 2123 阅读 · 3 评论 -
Java自学-网络编程 多线程聊天
使用 Java Socket 开发多线程聊天程序如果使用单线程开发Socket应用,那么同一时间,要么收消息,要么发消息,不能同时进行。为了实现同时收发消息,就需要用到多线程步骤 1 : 同时收发消息在练习-服务端和客户端互聊 中,只能一人说一句,说了之后,必须等待另一个人的回复,才能说下一句。这是因为接受和发送都在主线程中,不能同时进行。 为了实现同时收发消息,基本设计思路是把收发分别...原创 2019-08-01 10:05:36 · 300 阅读 · 0 评论 -
Java自学-图形界面 日期控件
两种Swing下的日期控件 DatePicker 和JXDatePickerswing没有自带的日期控件,需要第三方的类步骤 1 : DatePicker本例使用 Datepicker.jar 包,有一个缺点,不能设置时间,只能在创建控件的时候传入指定日期。需要设置日期,请使用JXDatePickerpackage gui; import java.awt.Color;imp...原创 2019-07-26 15:11:52 · 2261 阅读 · 1 评论 -
Java自学-网络编程 Socket
Java Socket 收发消息入门例子使用 Socket(套接字)进行不同的程序之间的通信步骤 1 : 建立连接服务端开启8888端口,并监听着,时刻等待着客户端的连接请求客户端知道服务端的ip地址和监听端口号,发出请求到服务端客户端的端口地址是系统分配的,通常都会大于1024一旦建立了连接,服务端会得到一个新的Socket对象,该对象负责与客户端进行通信。注意: 在开发调试的过...原创 2019-07-31 14:56:05 · 288 阅读 · 0 评论 -
Java自学-图形界面 菜单
如何在Swing中使用菜单JMenuGUI的菜单分为 菜单栏,菜单和菜单项步骤 1 : 菜单栏和菜单菜单栏和菜单package gui; import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar; public class TestGUI { public static...原创 2019-07-22 11:33:21 · 309 阅读 · 0 评论 -
Java自学-图形界面 面板
Swing 四种常见面板示例 1 : 基本面板JPanel即为基本面板面板和JFrame一样都是容器,不过面板一般用来充当中间容器,把组件放在面板上,然后再把面板放在窗体上。一旦移动一个面板,其上面的组件,就会全部统一跟着移动,采用这种方式,便于进行整体界面的设计package gui; import java.awt.Color;import java.awt.FlowLayo...原创 2019-07-21 07:42:44 · 667 阅读 · 0 评论 -
Java自学-图形界面 组件
Swing 中的组件列表JAVA的图形界面下有两组控件,一组是awt,一组是swing。一般都是使用swing示例 1 : 标签Label用于显示文字package gui; import java.awt.Color; import javax.swing.JFrame;import javax.swing.JLabel; public class TestGUI ...原创 2019-07-20 07:55:14 · 1028 阅读 · 0 评论 -
Java自学-图形界面 事件监听
Swing 如何进行事件监听示例 1 : 按钮监听创建一个匿名类实现ActionListener接口,当按钮被点击时,actionPerformed方法就会被调用package gui; import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.Imag...原创 2019-07-17 13:39:48 · 396 阅读 · 0 评论 -
Java自学-图形界面 Hello Swing
一个简单的 Swing 例子GUI-Graphic User Interface 图形用户界面Swing是GUI中开发工具包步骤 1 : 简单的例子JFrame是GUI中的容器JButton是最常见的组件- 按钮注意:f.setVisible(true); 会对所有的组件进行渲染,所以一定要放在最后面package gui; import javax.swing.JButton...原创 2019-07-17 13:34:43 · 265 阅读 · 0 评论 -
Java自学-网络编程 IP地址与端口
IP地址与端口概念IP地址与端口概念步骤 1 : IP地址在网络中每台计算机都必须有一个的IP地址;32位,4个字节,常用点分十进制的格式表示,例如:192.168.1.100127.0.0.1 是固定ip地址,代表当前计算机,相当于面向对象里的 “this”步骤 2 : 端口两台计算机进行连接,总有一台服务器,一台客户端。服务器和客户端之间的通信通过端口进行。如图:ip地址是...原创 2019-07-30 22:05:27 · 312 阅读 · 0 评论 -
Java自学-图形界面 表格
Swing 使用 JTable详解示例 1 : 基本表格显示一个Table需要两组数据一维数组: String[]columnNames 表示表格的标题二维数组: String[][] heros 表格中的内容默认情况下,表格的标题是不会显示出来了,除非使用了JScrollPanepackage gui; import java.awt.BorderLayout; imp...原创 2019-07-24 09:04:31 · 7278 阅读 · 1 评论 -
Java自学-图形界面 布局器
Swing五种常见的布局器布局器是用在容器上的。 用来决定容器上的组件摆放的位置和大小示例 1 : 绝对定位绝对定位就是指不使用布局器,组件的位置和大小需要单独指定package gui; import javax.swing.JButton;import javax.swing.JFrame; public class TestGUI { public static v...原创 2019-07-19 07:59:19 · 180 阅读 · 0 评论 -
Java自学-JDBC 数据库连接池
数据库连接池与线程池类似的,数据库也有一个数据库连接池。 不过他们的实现思路是不一样的。本章节讲解了自定义数据库连接池类:ConnectionPool,虽然不是很完善和健壮,但是足以帮助大家理解ConnectionPool的基本原理。步骤 1 : 数据库连接池原理-传统方式当有多个线程,每个线程都需要连接数据库执行SQL语句的话,那么每个线程都会创建一个连接,并且在使用完毕后,关闭连接。...原创 2019-07-16 17:51:00 · 289 阅读 · 0 评论 -
Java自学-图形界面 容器
Swing 的容器 JFrame和JDialogjava的图形界面中,容器是用来存放 按钮,输入框等组件的。窗体型容器有两个,一个是JFrame,一个是JDialog步骤 1 : JFrameJFrame是最常用的窗体型容器,默认情况下,在右上角有最大化最小化按钮package gui; import javax.swing.JButton;import javax.swing....原创 2019-07-18 13:28:07 · 287 阅读 · 0 评论 -
Java自学-JDBC ORM
使用JDBC做一个ORM例子ORM=Object Relationship Database Mapping对象和关系数据库的映射简单说,一个对象,对应数据库里的一条记录步骤 1 : 根据id返回一个Hero对象提供方法get(int id)返回一个Hero对象package charactor; public class Hero { //增加id属性 publ...原创 2019-07-11 09:54:54 · 220 阅读 · 1 评论 -
Java自学-泛型 通配符
Java 泛型通配符 ? extends super 的用法示例 1 : ? extendsArrayList heroList<? extends Hero> 表示这是一个Hero泛型或者其子类泛型heroList 的泛型可能是HeroheroList 的泛型可能是APHeroheroList 的泛型可能是ADHero所以 可以确凿的是,从heroList取出来的对象,一...原创 2019-06-09 16:34:39 · 130 阅读 · 0 评论 -
Java自学-Lambda 中的方法引用
Lambda 方法引用步骤 1 : 引用静态方法首先为TestLambda添加一个静态方法:public static boolean testHero(Hero h) { return h.hp>100 && h.damage<50;}Lambda表达式:filter(heros, h->h.hp>100 && h.da...原创 2019-06-14 14:35:33 · 4040 阅读 · 2 评论 -
Java自学-集合框架 HashMap
Java集合框架 HashMap示例 1 : HashMap的键值对HashMap储存数据的方式是—— 键值对package collection; import java.util.HashMap; public class TestCollection { public static void main(String[] args) { HashM...原创 2019-05-25 10:18:09 · 156 阅读 · 0 评论 -
Java自学-I/O 数据流
Java 数据流DataInputStream ,DataOutputStreamDataInputStream 数据输入流DataOutputStream 数据输出流步骤 1 : 直接进行字符串的读写使用数据流的writeUTF()和readUTF() 可以进行数据的格式化顺序读写如本例,通过DataOutputStream 向文件顺序写出 布尔值,整数和字符串。 然后再通过DataI...原创 2019-05-16 09:28:21 · 184 阅读 · 0 评论
分享