Java学习专栏
文章平均质量分 75
Java学习笔记
狮子座的程序员
不积跬步无以至千里,不积小流无以成江海
展开
-
Java——浅析java中修饰符
public:公开的,谁都可以调用abstract:受限制的,本包内可以调用private:私有的,本类内可以调用final:终结的,不能被更改,用于定义常量static:静态的,可以被直接调用,而且一变全变,不会因为对象不同而不同...原创 2019-06-26 08:50:22 · 212 阅读 · 0 评论 -
Java————配置Java环境变量
在哪配置:配置JAVA_HOME:新建一个JAVA_HOME;变量值为你的jdk的路径;JAVA_HOME是一个约定,通常它指的是JDK的目录。如果需要JDK的话,大部分程序会默认去环境变量中取JAVA_HOME这个变量。配置Path:在Path中添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\binPATH是操作系统用的,用来指...原创 2018-08-01 14:07:21 · 867 阅读 · 0 评论 -
Java——静态方法只能通过类名调用吗?
静态方法调用的三种方式:1、new xx().静态(); //使用对象调用,不推荐2、xx.静态(); //类名调用,正规调用方法,推荐3、静态(); //本类的静态方法在本类调用,直接调用欢迎各位在评论区留言探讨...原创 2018-07-15 11:16:55 · 18111 阅读 · 6 评论 -
Java————错误:找不到或无法加载主类
小编表示WTF???为什么找不到主类dictionary2_0???找不到是什么原因???1.可能是编译的时候后缀带了.class:把后缀去掉;2.可能是因为你的java文件带了package包,但是你还在java文件所在目录运行:返回包的前一目录进行运行;小编就是因为java文件里带了package word.project2_0;导致的错误。。。错误原因是:我们在包里运行文...原创 2018-08-01 17:45:03 · 319741 阅读 · 48 评论 -
Java——创建Java中的接口
前言:进来的伙伴们是不是发现在类中创建不了接口??哈哈,恭喜你们成功上当。在包的类文件class中是不允许创建接口的,接口需要到包中创建接口的专属文件interface创建方法:没错,跟类的创建一样,直接点击interface就可以编写自己的接口啦!...原创 2018-05-22 15:13:18 · 11211 阅读 · 0 评论 -
Java——为什么要有接口?
为什么要有接口?一个类只能继承一个父类,但是可以继承N个接口。接口的目的是指明相关或者不相关类的多个对象的共同行为,跟抽象类很相似,可以说接口是更加抽象的抽象类。接口体现了程序设计的多态和高内聚低耦合的设计思想。接口定义:public interface 接口名 { /* 常量声明 */ /* 方法签名 */}使用接口:public interface U...原创 2018-05-23 15:26:41 · 12843 阅读 · 1 评论 -
Java——为什么要有抽象类的概念?
首先你要看到普通类的缺点:假设我有一个父类:class Animal//创建一个动物类{ String name; int age; public void cry()//动物会叫 { System.out.println("不知道怎么叫!");//可是我们不知道它怎么叫 }}假如我下面有一个猫类和狗类继承了这个动物类:class Dog ...原创 2018-05-23 14:18:04 · 8248 阅读 · 5 评论 -
Java——匿名内部类
概念:匿名内部类是一个没有名字的内部类。它将内部类的定义和创建一个内部类的实例合二为一,一步实现。代码讲解:感受一下内部类的好处吧:正常写:public void start(Stage primaryStage)//启动方法{ btEnlarge.setOnAction(new EnlargeHandler());//想创建一个EnlargeHandler的实例就要创建一个类...原创 2018-05-23 16:32:11 · 441 阅读 · 0 评论 -
Java——异常处理
我们平时所处理的异常都是Exception异常。为什么使用异常?在程序调用方法的时候,可能会出错,比如数组下标越界,空指针,数值转换异常等等,又比如取款必须小于余额,而我们在输入的时候可能会出错,由此导致异常。处理异常:抛出异常-捕获异常-处理异常处理异常基本写法:try { 语句组}catch(Exception ex){ 异常处理语句组}代码实现:public class Tes...原创 2018-05-23 18:47:09 · 337 阅读 · 0 评论 -
Java——自定义异常类
为什么要自定义异常类?当我们在输入成绩,输入工资,取款的时候,往往都有一个范围,而这个范围不是JVM能够识别的,因此在输入的时候就容易出错,因此在这些时候JDK中的异常无法满足我们的需求,我们只能自己定义异常类。如何自定义异常类?可以通过继承Exception来派生自己的子异常类。而Exception中常用的构造方法:+Exception(),+Exception(message:String),...原创 2018-05-23 19:32:57 · 8715 阅读 · 3 评论 -
Java——浅析foreach结构
概念:Java支持一个简便的for循环,称为foreach循环,即不适用下表就可以顺序的遍历整个数组。原创 2018-05-25 21:55:30 · 2747 阅读 · 1 评论 -
Java——Java中用foreach遍历真的不能修改数据?
问题:foreach语句到底可不可以改变所遍历容器(数组与集合)的值?我先说个答案:可以改变对象的值,但是不能删除或添加对象,也不可以改变变量(比如int a)的值,就算用集合存变量依旧不能。概述:我在书上看到的是这句话:当需要以其他顺序遍历数组或改变数组中的元素时,还是必须使用下标变量。它仅仅表示的数组中不可以改变,我测试了一下,确实如此:代码表示:import j...原创 2018-05-26 13:32:52 · 39411 阅读 · 22 评论 -
Java——浅析Java中的迭代器
迭代器的作用:快速遍历集合中的元素。代码实现:语法结构:Iterator <类型> 迭代器名 = 集合名.iterator(); while(迭代器名.hasNext()) { 语句 }实例:import java.util.*; //导包 public class Test1 { ...原创 2018-05-26 16:36:39 · 2089 阅读 · 1 评论 -
Java——深入理解Java中的迭代器
概述:迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。Java集合框架的集合类,我们有时候称之为容器。容器的种类有很多种,比如ArrayList、LinkedList、HashSet...,每种容器都有自己的特点,ArrayList底层维护的是一个数组;LinkedList是链表结构的;HashSet依赖的是哈希表,每种容器都有自己特有的数据结构。因...原创 2018-05-26 16:25:24 · 858 阅读 · 1 评论 -
Java——Java中的动态绑定
概念:方法可以在沿着继承链的多个类中实现,子类可以重写父类的方法。JVM决定运行时调用哪个方法。这就是动态绑定。原理:假设,对象o是类C1的实例,其中C1是C2的子类,C2是C3的子类,那么o也是C2,C3的实例。如果对象o调用一个方法p,JVM会依次在类C1,C2,C3中查找方法p的实现,直到找到为止。代码解释:public class Test1 { public static void m...原创 2018-05-25 13:15:39 · 9301 阅读 · 4 评论 -
Java——泛型
为什么用泛型?在定义类时,不知道类是什么类型,而我们又不能定义多个类型,所以用一个模糊的类型——泛型来修饰类。给了代码更高的使用率,不会因为不同类型(ClassCaseException)而导致代码复用率低。代码理解:理解下述代码为何出错import java.util.*;//泛型需要引入uitl包public class Test1 { public sta...原创 2018-05-24 19:30:37 · 648 阅读 · 0 评论 -
Java——线程基础
概念:什么是线程?线程是轻量级的进程。线程没有独立的地址空间(内存)。线程是由进程创建的(在进程内)。一个进程可以拥有多个线程。线程有几种状态:新建状态new,就绪状态Runnable,运行状态Running,阻塞状态Blocked,死亡状态Dead线程如何使用:继承Thread类,并重写run函数。实现Runnable接口,并重写run函数(为什么要用Runnable接口?因为继承你只能继承一个...原创 2018-06-02 19:32:47 · 219 阅读 · 0 评论 -
Java——【项目实战】——(一)员工管理系统(控制台)带源码
运行截图代码链接链接:https://pan.baidu.com/s/1l7QapaTtRNj-qt52cevy_w提取码:axvh复制这段内容后打开百度网盘手机App,操作更方便哦原创 2020-06-16 16:21:53 · 1210 阅读 · 0 评论 -
List结构的集合基础(一)ArrayList类
前提:引入java.util包语法结构:创建ArrayList集合类:ArrayList <泛型> 集合名=new ArrayList <>(); 集合元素的加入:集合名.add(对象名)集合的遍历(举例):for(int i=0;i<list.size();i++){ Clerk temp=(Clerk)list.get(i); //用一个暂时变量...原创 2018-05-24 23:14:31 · 4011 阅读 · 0 评论 -
List结构的集合基础(二)LinkedList类
前提:引入java.util包语法结构:相比叫ArrayList集合类,LinkedList更加灵活,在它基础上新增了头和尾的操作,比如从开头增加,从开头删除等等创建LinkedList类:LinkedList <类型> 集合名=new LinkedList <>();集合元素的加入(常用):集合名.add(对象名); //顺序添加集合名.addFirst(对象名)...原创 2018-05-25 10:40:34 · 325 阅读 · 0 评论 -
List结构的集合基础(三)Vector类
前提:引入java.util包语法结构:相比较ArrayList集合类,Vector更加安全,在它基础上新增了头和尾的操作,比如从开头增加,从开头删除等等创建VectorList类:...原创 2018-05-25 12:23:06 · 794 阅读 · 0 评论 -
List结构的集合基础(四)ArrayList和Vector的区别
区别:同步性:Vector是同步的,这个类中的方法保证了Vector中的对象是线程安全的,而ArrayList则是异步的,因此ArrayList中的对象并不是线程安全的。因为同步的要求影响执行的效率,所以如果不需要线程安全的集合,那么使用ArrayList是一个很好的选择。数据增长:从内部实现机制来讲ArrayList和Vector都是使用数组来控制集合中的对象。当你向这两种类型中增加的元素的时候...原创 2018-05-26 22:19:41 · 200 阅读 · 1 评论 -
Map结构的集合基础(一)HashMap类
前提:引入java.util包简介:HashMap是Map结构的集合,最主要的属性是Key-Value(键值对),这样可以很方便的进行。在HashMap中是根据Key来进行存储的,如果Key相同,前值会被覆盖。语法结构:创建HashMap集合类:HashMap<类型,类型> 集合名=new HashMap<>();集合元素的加入:集合名.put(关键字,值);集合的查改:i...原创 2018-05-26 21:05:50 · 1410 阅读 · 1 评论 -
Map结构的集合基础(二)Hashtable类
Hashtable类和HashMap的用法基本一致曾经有道面试题这样问的:HashMap和Hashtable的区别是什么?答案:HashMap是存Map的,Hashtable是存table的。哈哈哈哈,不过确实有道理。Map结构的集合基础(一)HashMap类:点击打开链接欢迎各位在评论区留言探讨~~...原创 2018-05-26 21:13:48 · 156 阅读 · 1 评论 -
Map结构的集合基础(三)HashMap与Hashtable的区别
区别:历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现。同步性:Hashtable是同步的。保证了Hashtable中的对象是线程安全的。而HashMap则是异步的,因此HashMap中的对象是线程不安全的。因为同步的要求会影响执行的效率,所以如果你不需要线程安全的集合,那么使用HashMap是一个很好的选择,这样可以避免因...原创 2018-05-26 21:52:18 · 254 阅读 · 1 评论 -
JavaGUI——绘图技术基础
介绍:绘图技术一般使用在面板JPanel上,绘图技术是重写JPanel的paint制图方法,使用的Graphics制图类来完成各种各样的图案绘制。使用paint制图方法绘制的图形,可以在面板自由的控制位置,不会受面板流式布局的影响。绘图原理:Component类提供了两个和绘图相关的方法:paint(Graphics g)绘制组件外观repaint()刷新组件外观paint方法会自动被调用的情况:...原创 2018-05-31 19:23:01 · 4981 阅读 · 5 评论 -
JavaGUI——界面编程思路
编程思路:定义组件 -> 创建组件 -> 设置布局 -> 添加组件 -> 设置界面属性举个案例:import java.awt.*;import javax.swing.*;public class Text_10 extends JFrame{ //定义组件 JButton jb1; public static void main(String[] args)...原创 2018-05-31 23:13:31 · 1551 阅读 · 0 评论 -
JavaGUI——背景图片设置
设置思路:创建一个ImageIcon图片对象->把图片放入label中->把定义好的图片面板设置为容器面板->把图片面板设为不可视并且布局设为流动布局->把LayeredPane的布局置空->把label添加到LayeredPane的最底层(现在看不懂没关系,这是设置背景图片的大概流程,帮助理解的,自己按照流程练习三遍就会了)案例展示:案例代码:import java...转载 2018-06-30 14:46:02 · 21868 阅读 · 8 评论 -
JavaGUI——布局管理器基础(一)边界布局BorderLayout
布局管理器介绍:概念:组件在容器(比如JFrame)中的位置和大小是由布局管理器来决定的。所以的容器都会使用一个布局管理器,通过它来自动进行组件的布局管理。种类:Java共提供了五种布局管理器:流式布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、网格包布局管理器(GridBagLayou...原创 2018-05-27 16:41:04 · 1780 阅读 · 6 评论 -
JavaGUI——布局管理器基础(二)流式布局FlowLayout
流式布局介绍:FlowLayout布局,按照组件的添加次序将按钮组件(当然也可以是别的组件)从左到右放置在容器中。当到达容器的边界时,组件将放置在下一行中。FlowLayout可以以左对齐,居中对齐、以右对齐的方式排列组件。代码实现:import java.awt.*;import javax.swing.*;public class swing_3 extends JFrame{ //定...原创 2018-05-27 18:02:11 · 1837 阅读 · 1 评论 -
JavaGUI——布局管理器基础(三)网格布局GridLayout
网格布局介绍:GridLayout布局将容器分割成多行多列,组件被填充到每个网格中,添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其他的组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件。代码实现:import javax.swing.*; //导包import java.awt.*; //导包public class Swing_G...原创 2018-05-27 18:49:30 · 5743 阅读 · 6 评论 -
JavaGUI——swing组件基础(一)面板组件JPanel
为什么要有面板组件?在图形用户界面编程,很多时候只用三种布局管理器解决不了问题,在比较复杂的布局要求时,就需要使用布局管理器的组合使用。面板组件怎么用?JPanel:面板组件,非顶层容器,默认为流式布局。一个界面只可以有一个JFrame顶层容器,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout,BorderLayout,GridLayout等各种布局管理器,这样可...原创 2018-05-28 11:40:15 · 8669 阅读 · 3 评论 -
JavaGUI——swing组件基础(二)文本框/密码框/标签组件
为什么要用这些组件?在图形用户界面编程中,我们常常会提供用户登录界面,比如登录到会员管理系统。这时候我们就会用到:文本框(JTextField)、密码框(JPasswordField)、标签(JLable)介绍三个组件:文本框:用于输出文本,是明文。(用户名后面的输入框)密码框:用于输入密码,输入的不是明文,而是一串符号。(密码后的输入框)标 签:用于显示一串字符。(文本框和密码框前的字就是标...原创 2018-05-28 11:59:34 · 11906 阅读 · 3 评论 -
JavaGUI——swing组件基础(三)单选框和复选框
为什么要用这两个组件?当我们提供用户注册界面的时候,常常会用到:复选框组件(JCheckBox)单选框组件(JRadioButton)介绍两个个组件:复选框组件(JCheckBox):可以多选的选择框单选框组件(JRadioButton):只能单选的选择框注意事项:同一组单选按钮必须先创建ButtonGroup,然后把单选框组件放入到ButtonGroup中,才能在面板添加单选框。代码实现:思路:...原创 2018-05-28 12:33:37 · 14370 阅读 · 2 评论 -
JavaGUI——swing组件基础(四)下拉框/列表框/滚动窗格组件
为什么要用到这三个组件?在提供用户调查几面的时候,如果选项比较多,那么就会用到:下拉框组件(JComboBox)列表框组件(JList)滚动窗格组件(JScrollPane)介绍三个组件:下拉框组件(JComboBox):点击箭头可以显示其他信息列表框组件(JList):可以跟列表一样显示信息滚动窗格组件(JScrollPane):与列表框结合使用,可以滚动显示代码实现:import java.a...原创 2018-05-28 13:15:07 · 16829 阅读 · 1 评论 -
JavaGUI——swing组件基础(五)拆分窗格JSplitPane
目标图:界面分析:看到图片占据了大部分空间,立刻想到了边界布局(BorderLayout)。左右两边都可以从头到尾显示,说明是拆分窗格(JSplitPane)。基本布局想好以后,看右部,可以用标签(JLabel)来导入图片。再看左部,是个列表框(JList)和滚动窗格(JSrocllPane)。介绍一下拆分窗格:拆分窗格(JSplitPane)是容器类组件,可以把容器按指定方向(横/竖)拆分。其构...原创 2018-05-28 22:09:53 · 5032 阅读 · 2 评论 -
JavaGUI——swing组件基础(六)多行文本框组件JTextArea
为什么要用多行文本框组件?文本框JTextField是单行输入,而多行文本框(JTextArea)可以实现多行输入。实战目标图:界面分析:看到上部占了大部分空间,决定使用边界布局。下部的最下部很像边界布局的SOUTH部分,在这部分中有两种组件,一种按钮组件JButton,一种下拉列表JComboBox,并且采用流式布局的右对齐。上部采用拆分窗格将两个多行文本框放在窗格两...原创 2018-05-29 12:09:31 · 24220 阅读 · 1 评论 -
JavaGUI——swing组件基础(七)选项卡窗格JTabbedPane
为什么要有选项卡组件?在GUI编程中,会涉及到选项卡组件,比如登录界面,你可以选择账号密码登录,还是手机登录,还是邮箱登录。选项卡组件怎么用?选项卡组件JTabbedPane,创建好选项卡后可以添加很多个选项,每个选项都可以有自己的面板,在下例中,只添加了三个选项。代码实现:import java.awt.*; //导包import javax.swing.*;public cl...原创 2018-05-29 18:26:30 · 5245 阅读 · 2 评论 -
JavaGUI——swing组件基础(八)菜单栏/菜单/子菜单组件JMenuBar/JMenu/JMenuItem
介绍这三个组件:菜单栏组件JMenuBar:该组件可以添加菜单,添加的菜单会排成一行。菜单栏JMenu:可以显示的一个个的菜单,该组件可以添加子菜单,也可以添加菜单,添加的菜单会排成一列。子菜单JMnuItem:可以添加到菜单中。其实这个三个组件还是有点绕人的,但是大家做一遍就理解了,光看不容易懂。如何创建组件:JMenuBar name=new JMenuBar(); //创建菜单栏JMe...原创 2018-05-30 14:10:30 · 16695 阅读 · 4 评论 -
Java——事件处理机制概要
事件处理机制介绍:事件处理,就是根据事件发生的情况进行相应的操作。其主要参与者有两个,一个是事件源,一个是监听者。事件源发生事件(产生一个事件对象),监听者监听事件,监听到事件的发生,就做出相应的处理。给大家看个示意图:事件处理机制的流程:首先记得导入java.awt.Event.*包注册监听器 —> ...原创 2018-06-01 21:33:23 · 1074 阅读 · 0 评论