首页 文章 精选 留言 我的

精选列表

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

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

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

Java 面向对象 之 enum 枚举类型

http://www.verejava.com/?id=17159522877829 /** * * 1. 常量 : 用final 修饰的变量 * 注意: 常量 遵循标识符命名规则, 一般大写 * * 2. enum 枚举类型 : 遵循标识符命名规则, 首字母大写 * 枚举类型: 是一种特殊的限定的常量类型 * 优点 : 限定值 * */ public class Test1 { public static void main(String[] args) { // 实例化 r=5 红色的圆 Circle red = new Circle(5, Color.RED); //red.PI=1000; red.draw(); // 实例化 r=10 绿色的圆 Circle green = new Circle(10, Color.GREEN); green.draw(); // 实例化 r=20 蓝色的圆 Circle blue = new Circle(20, Color.BLUE); blue.draw(); } } //定义枚举类型 enum Color { RED, GREEN, BLUE } class Circle { double r;//圆的半径 final double PI = 3.14;// 常量 Color color;//圆的颜色 (0:红 1: 绿 2 : 蓝) public Circle(double r, Color color) { this.r = r; this.color = color; } //计算圆的面积 public double getArea() { return PI * r * r; } //画圆 public void draw() { String colorName = ""; if (color == Color.RED) { colorName = "红色"; } if (color == Color.GREEN) { colorName = "绿色"; } if (color == Color.BLUE) { colorName = "蓝色"; } System.out.println("将 面积为 : " + getArea() + " 颜色:" + colorName + " 圆画在屏幕上"); } } http://www.verejava.com/?id=17159522877829

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

(一)Java工程化--Maven基础

Maven 读作['mevən] 翻译成中文是"内行,专家" Maven是什么 包依赖的前世今生: 原始的jar包引用--> ant --> maven. 是一种项目管理工具 Maven优势: convertion over configuration 约定优于配置: 这个原则不仅适用于maven, 更是目前大多数框架遵循的原则,如mvc 简单 易于测试 构建简单 CI(持续集成) 插件丰富 下载和安装 下载: http://maven.apache.org/download.cgi 安装: 解压安装即可 环境变量配置: windows: 配置path MAVEN_HOME linux: 在 .bash_profile 文件中 运行参数: 定义环境变量MAVEN_OPS 配置settings.xml: settings.xml文件是个空模板,我们可以在这个文件进行一些自定义配置. 常用的配置如:repo存储目录 创建maven项目 项目结构: 遵循约定优于配置原则, 项目包的组织结构如下 pom.xml groupId 公司组织id artifactId 功能命名 version 版本号 packageing 打包方式,默认jar,可修改为maven-project,war dependancyManagement 最好之出现在父pom中,用于统一版本号,只做声明依赖,子模块pom中还需要引用,但不需要制定version. dependancy type 默认jar scope 指定哪个阶段适用,各阶段如下: compile 编译,打包,默认 如spring-core test 测试 如spring-test provided 编译 如servlet runtime 运行时 如JDBC驱动实现包 system 本地一些jar 依赖传递 依赖仲裁:(1)最短路径原则,根据依赖树就近取最接近的版本;(2)加载顺序原则;(3)exclusions 排除包 命令: mvn dependancy:tree Maven生命周期(三个过程) 区分术语:lifecycle/phase/goal 生命周期: clean 包含的phase: pre-clean --> clean --> post-clean default compile package install deploy ... site pre-site --> site -->post-site --> site-deploy A Build Lifecycle is Made Up of Phases 一个构建生命周期是有多个phase组成 A Build Phase is Made Up of Plugin Goals 一个构建phase是由多个插件目标goal构成

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册