首页 文章 精选 留言 我的

精选列表

搜索[Java],共10000篇文章
优秀的个人博客,低调大师

Java 异常处理 之 捕获处理流程

http://www.verejava.com/?id=16992991138281 package com.exception2; /** 注意: 1. 当异常发生的时候,程序会终止,其后面的代码不会执行. 2. 异常分为编译时异常和运行期异常 编译期异常必须用 try{}catch{}捕获,运行期异常可以不捕获 编译期异常从 Exception 继承, 运行期异常从RuntimeException 继承 异常的处理流程 注意: 1. try{}catch{} 代码块里的局部变量, 不能在其外访问. 所以如果要访问 最好在try catch 代码块外定义,然后再使用. 2. 异常执行流程 当异常发生时,首先系统产生一个异常实例, 如果没有try catch 代码块报异常终止执行, 如果遇到try catch 代码块, 系统会把异常实例跟 catch() 里面的异常对象依次从上往下进行匹配,如果匹配成功进入 catch{} 代码块. 否则 报异常终止执行. 3. Exception 是异常的根类, 根据多态原则,所以所有的异常实例都可以转为Exception 这样通过 Exception 就可以捕获到所有出现的异常. 4. finally{ }代码块的内容不管是否有异常 都会执行。 用来释放资源,比如 关闭文件,关闭数据库连接等。 5. finally{} 代码块的语句, 是在return 之前运行的. */ public class TestException { public static void main(String[] args) { int[] scores = { 60, 70, 80 }; try { System.out.println(scores[3]); System.out.println(3 / 0); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组越界异常"); } catch (ArithmeticException e) { System.out.println("数学异常"); } catch (Exception e) { System.out.println("发生了异常"); } } } http://www.verejava.com/?id=16992991138281

优秀的个人博客,低调大师

Java 面向对象 之 匿名内部类

http://www.verejava.com/?id=16992872428362 /** 知识点: 匿名内部类 题目: 摩托车上装有警报器,当有人碰到摩托车时, 警报器发出报警响声 思路: 1. 抽象出类: 1.1 摩托车(Moto),报警器(Alarm), 人(Person) 2. 找出类的关系: 2.1 摩托车上装有报警器 Alarm -> Moto(1对1) 2.2 警报器有不同品牌的分类 Alarm 3. 找出类属性: 3.1 Moto(品牌,报警器的引用) 3.2 Alarm(品牌) 3.3 Person(姓名) 4. 找出类方法: 4.1 摩托车上装有报警器 Moto{load(Alarm alarm)} 4.2 人碰到摩托车 Person{touch(Moto moto)} 4.3 警报器发出响声 Alarm{beep()} */ public class TestMoto { public static void main(String[] args) { //准备生产一台南方摩托车 Moto moto = new Moto("南方"); //摩托车上预装一台 小功率的 报警器 moto.load(new SmallAlarm()); //这个时候李明过来了 Person p = new Person("李明"); //李明不小心碰到了摩托车, 摩托车发出了报警声 p.touch(moto); } } interface Alarm { //报警器能发出报警声 public void beep(); } class SmallAlarm implements Alarm { //报警器发出响声 public void beep() { System.out.println("有人碰到我了,可能偷摩托"); } } class Moto { private String brand;//品牌 private Alarm alarm;//报警器引用 public Moto(String brand) { this.brand = brand; } public Alarm getAlarm() { return this.alarm; } //装载警报器 public void load(Alarm alarm) { this.alarm = alarm; } } class Person { private String name;//姓名 public Person(String name) { this.name = name; } //人触碰到摩托车, 同时摩托车上的报警器发出响声 public void touch(Moto moto) { moto.getAlarm().beep(); } } http://www.verejava.com/?id=16992872428362

优秀的个人博客,低调大师

Java 面向对象 之 静态内部类

http://www.verejava.com/?id=16992860269360 /** 知识点: 内部类 1. 内部类的定义 2. 内部类的优缺点 3. 外部类怎么实例化其他类的内部类 4. 方法中定义内部类 如果在方法中定义内部类,方法中的内部类要访问变量, 需要加final 关键字 5. static 声明内部类 题目:母亲怀了孕, 母亲的营养决定孩子的健康成长 思路: 1. 抽象出类 : 母亲(Mother), 孩子(Baby) 2. 找出类的关系: 孩子在母亲里面 Baby in Mother 3. 抽象出方法: 母亲吃东西 (eat) */ public class InnerClass3 { public static void main(String[] args) { //实例化母亲 Mother mother = new Mother("lucy"); //母亲吃苹果 mother.eat("苹果"); //孩子吸收营养 //Mother.Baby baby=new Mother.Baby(); //baby.eat(); Mother.Baby.eat(); } } class Mother { private String name; private static String food;//母亲吃的食物 public Mother(String name) { this.name = name; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } //母亲吃东西 public void eat(String food) { this.food = food; System.out.println(this.name + " 吃了 " + this.food); } static class Baby { //孩子从母亲吃的东西中吸收营养 public static void eat() { System.out.println("孩子从母亲吃的 " + food + " 中吸收营养"); } } } http://www.verejava.com/?id=16992860269360

优秀的个人博客,低调大师

(三)Java工程化--Git起步

GIT学习参考:https://git-scm.com/book/zh/v2 版本控制 版本控制记录了一个或若干文件的历史变化,便于今后查阅,恢复。 三类版本控制系统 本地版本控制系统 RCS : 本地存储文件变更系统,无法协作及对权限做统一管理 集中化版本控制系统 CVCS : 变更存储于集中的一台服务器 分布式版本控制系统 DVCS : 分布式存储版本库镜像, 包含文件历史变更的所有信息 Git的历史 git来自于linux团队, 是linux为了解决之前版本管理工具Bitkeeper收费的问题研发出来的。 设计目标 速度 简单 对非线性开发模式的强力支持(多个并行开发的分支) 完全分布式 适用超大规模项目 linux是开源的, 所以当他们之前使用的版本工具开始收费的适合,他们决定自己研发一个版本控制工具,即Git. 说起开源, 我们需要了解下常见的开源协议,以便我们做技术选型时考虑.例如一般的开源协议都要求使用开源框架的项目也要开源. Git与SVN(或者说其他版本控制系统)的区别 直接记录快照,而非差异比较 了解此项差异的底层实现方式非常重要,有利于我们更准确的理解和学习Git.具体可以参考文章开始的网站资料.(有图有真相) 近乎所有操作都在本地执行(得益于第一点的底层实现,即分布式存储) Git使用sha1哈希算法算出的校验和保证完整性 Git的索引是校验值而不是文件名,如果在传送过程中有信息丢失和损坏,Git就能发现. Git一般只添加数据 (只要提交便不会丢失数据,可以执行可逆操作) 使用前的配置 git config --list 显示所有配置 git config --global user.name 'user' 设置用户名 git config --global user.email 'user@xxx.com' 设置用户邮箱 ssh-keygen -t rsa -C 'user@xxx.com' 生成ssh密钥 多用户配置方法: 在.ssh路径下(C:\Users\xueli.ssh)创建文件config, 添加下面内容 # Default github user(usergithub@mail.com) Host github.com HostName github.com User git IdentityFile C:\Users\xueli.ssh\id_rsa # Default mygitlib user(second@mail.com) Host mygitlib.com HostName mygitlib.com User git IdentityFile C:\Users\xueli.ssh\mygitlib 上面是Git起步和背景知识, 下次将学习Git常用命令.

优秀的个人博客,低调大师

Java 面向对象 之 多态实例2

http://www.verejava.com/?id=16992846385655 /** 题目: 孩子吃 水果(苹果,葡萄,芒果,菠萝) 思路: 1. 抽象出类 : 孩子(Baby), 水果(Fruit)(苹果(Apple),葡萄(Grape),芒果(Mango)) 2. 找出类的关系: 水果 -> 孩子 (苹果,葡萄,芒果) 是 水果的分类 3. 找出属性: 孩子(姓名,水果引用) 4. 找出方法: 孩子吃(eat)水果 子类->父类的转换 作用 :解耦 也就是降低类与类之间的耦合度 提供可扩展性 */ public class Polymorphism3 { public static void main(String[] args) { //实例化一个Baby Baby baby = new Baby("李明"); //实例化一个苹果 和 一个葡萄 Apple apple = new Apple("红富士"); Grape grape = new Grape("黑葡萄"); Mango mango = new Mango("大芒果"); PineApple pineApple = new PineApple("菠萝"); //李明吃苹果 baby.eat(apple); System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); baby.eat(grape); System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); baby.eat(mango); System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); baby.eat(pineApple); System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); } } class Baby { private Fruit fruit; private String name; public Baby(String name) { this.name = name; } public String getName() { return this.name; } public Fruit getFruit() { return this.fruit; } //吃水果 public void eat(Fruit fruit) { this.fruit = fruit; } } class Fruit { private String name; public Fruit(String name) { this.name = name; } public String getName() { return this.name; } } class PineApple extends Fruit { public PineApple(String name) { super(name); } } class Apple extends Fruit { public Apple(String name) { super(name); } } class Grape extends Fruit { public Grape(String name) { super(name); } } class Mango extends Fruit { public Mango(String name) { super(name); } } http://www.verejava.com/?id=16992846385655

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册