Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/kodo/sdk/1239/java#server-upload 官方SDK:https://developer.qiniu.com/sdk#official-sdk 创建空间及绑定域名 创建存储空间 这一步操作没有什么好说的,我们存储区域可以根据服务器的高频访问地域进行设置. 绑定域名 创建好存储空…
Java进阶学习——log4j的学习和使用 简介Loj4j Log4j的组成 Log4j主要由三大组组件构成: Logger: 负责生成日志,并能够对日志信息进行分类筛选,通俗的讲就是决定什么日志信息应该被输出,什么日志信息应该被忽略. Appender: 定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方,这些地方可以是控制台.文件或网络设备等. Layout: 指定日志信息的输出格式. 说明: 一个Logger可以有多个Appender,这意味着日志信息可以被输出到多个设备上,并且…
对象容器 顺序容器 记事本的例子 UI设计和业务逻辑要分离 接口设计 add(String note); getSize(); getNote(int index); removeNote(index); list(); 泛型容器类 泛型类 ArrayList 一种容器可以无限制的添加 容器类 容器的类型 ArrayList 元素的类型 String ArrayList的操作 add操作的位置不能脱离现有序列,例如现有序列为0.1,则位置可以为0.1.2,不能为3 小练习 package com…
对象数组 对象数组中的每个元素都是对象的管理者而非对象本身 对象数组的for—each循环 集合容器(HashSet) HashSet 数学中的集合,元素间满足互异性.确定性.无序性 HashSet<String> s=new HashSet<String>(); s.add("first"); s.add("second"); System.out.println(s); 任何类中只要有public String toString(),都可…
查找里程(10分) 题目内容: 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程. 注意:任何两个城市之间的里程都已经给出,不需要计算经第三地中转. 注意:你并不需要去录入上图的数据,数据是在程序输入中给的. 输入格式: 首先,你会读到若干个城市的名字.每个名字都只是一个英文单词,中间不含空格或其他符号.当读到名字为“###”(三个#号)时,表示城市名字输入结束,###并不是一个城市的名字.如果记读到的城市名字的数量为n.…
访问属性 封闭的访问属性 private等访问权限控制是对类的,这意味着同一类的不同对象可以互相访问其成员 这是从代码层面去考虑的,意味着不同类文件 开放的访问属性 一个类文件就是一个编译单元 public class可以在不同包不同类进行访问 没有任何访问控制权限的class只能在同一包里进行访问 包 包名的 . 代表文件夹系统中文件的层次 JVM自动生成的构造函数访问权限是Public 例如com.mieba.servlet和com.mieba.dao 文件夹层次为 src com mieb…
类与对象 函数与调用 函数是通过对象来调用的 this 是成员函数的特殊的固有的本地变量 它表达了调用这个函数的那个对象 调用函数 通过 . 运算符,调用某个对象的函数 在成员函数内部直接调用自己(this)的其他函数 本地变量 定义在函数内部的变量是本地变量 本地变量的生存期和作用域都是函数内部 成员变量 生存期是对象的生存期 基本作用域是类内部的成员函数 按照private.protected.public.和default有不同的作用域 对象初始化 构造函数 函数重载 this()可以在构…
多态变量和向上造型 多态变量 子类和子类型 类定义了类型 子类定义了子类型 子类的对象可以被当作父类的对象来使用 赋值给父类的变量 传递给需要父类对象的函数 放进存放父类对象的容器里 多态变量 Java的对象变量是多态的,它们能保存不止一种类型的对象 它们可以保存的是声明类型的对象,或声明类型的子类的对象 当把子类的对象赋给父类的变量的时候,就发生了向上造型 向上造型 子类的对象可以赋值给父类的变量 注意,只是管理者发生了变化 父类的对象不能赋值给子类的变量 Vechicle v = new V…
package com.study; //自动售卖机 public class vmachine { private int price = 80; private int balance; private int total; void setPrice(int price) { this.price=price; } void show() { System.out.println("Welcome"); } void insertMoney(int amount) { balan…
框架加数据 把数据的硬编码尽可能解成框架加数据的结构 城堡游戏修改后的代码 Room类 package com.castle; import java.util.HashMap; public class Room { private String description; private HashMap<String, Room> exits=new HashMap<String, Room>(); public Room(String description) { this.d…
对象交互 对象交互 对象的识别 时钟小程序 把现实世界用对象去建模,去分解问题规模,最终抽象成对象和对象的模型 例如11:03的小程序,可以抽象成一个显示类,一个类生成两个对象去表示时钟 package com.study; public class Display { private int value=0; private int limit=0; Display(int limit) { this.limit=limit; } public int getValue() { return…
final修饰符: final用于修饰类.变量和方法. final修饰变量时,一旦获得了初始值就不可改变 1.抽象方法和抽象类 抽象方法与抽象类的规则: a.抽象方法和抽象类必须使用abstract修饰符,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法: b.抽象类不能被实例化,只能当作父类被其他子类继承 2.接口…
一.背景 容器是Java编程中使用频率很高的组件,但Java默认提供的基本容器(ArrayList,HashMap等)均不是线程安全的.当容器和多线程并发编程相遇时,程序员又该何去何从呢? 通常有两种选择: 1.使用synchronized关键字,将对容器的操作有序错开,确保同一时刻对同一个容器只存在一个操作.Vector,HashTable等封装后的容器本质也是这种解决思路,只不过synchronized关键字不需要我们来书写而已. 2.使用java.util.concurrent包下提供的并…
前言 ​ 前面我们了解了JVM相关的理论知识,这章节主要从实战方面,去解读JVM. 类加载机制 ​ Java源代码经过编译器编译成字节码之后,最终都需要加载到虚拟机之后才能运行.虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java 类型,这就是虚拟机的类加载机制. 类加载时机 ​ 一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载(Loading).验证(Verification).准备(P…
1. 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的现在属性动画也可以做到了.因此,今天我们就来学习一下属性动画的高级用法,看看如何实现一些补间动画所无法实现的功能. 2. ValueAnimator的高级用法: 在上篇文章中介绍补间动画缺点的时候有提到过,补间动画是只能对…
最近准备写点Javase的东西,希望可以帮助大家写出更好的代码. 1.给不可实例化的类提供私有构造器 比如:每个项目中都有很多工具类,提供了很多static类型的方法供大家使用,谁也不希望看到下面的代码: TextUtils textUtils = new TextUtils(); if(textUtils.isDigitsOnly("123")) { //doSometing }else { //doSomething } 自己写个工具类,总有人喜欢先初始化个实例在调用方法,然后还附…
java面向对象中的对象创建与使用.类是对象的抽象,为对象定义了属性和行为,但类本身既不带任何数据,也不存在于内存空间中.而对象是类的一个具体存在,既拥有独立的内存空间,也存在独特的属性和行为,属性还可以随着自身的行为而发生改变.接下来演示如何用类创建对象,创建对象之前,必须先声明对象,其语法格式如下: 类名 对象名; 类是自定义类型,也是一种引用类型,因此该对象名是一个引用变量,默认值为null,表示不指向任何堆内存空间.接下来需要对该变量进行初始化,Java使用new关键字来创建对象,也称实…
1. 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的现在属性动画也可以做到了.因此,今天我们就来学习一下属性动画的高级用法,看看如何实现一些补间动画所无法实现的功能. 2. ValueAnimator的高级用法: 在上篇文章中介绍补间动画缺点的时候有提到过,补间动画是只能对…
目录 1.集合 1.1.集合是什么 1.2.集合框架结构 1.2.1.Collection 1.2.2.Map 1.3.集合接口实现类 1.3.1.LinkedList 1.3.2.ArrayList 1.3.3.HashSet 1.3.4.TreeSet 1.3.5.HashMap 1.3.6.TreeMap 2.泛型 1.集合 1.1.集合是什么 之前的基础篇中我们知道了一种数据结构:数组,可以存放很多数据.但是数据有很大的局限性: 支持的数据类型单一 声明时需要指定大小,大小固定,可扩展性…
jar文件听说过吗,没有?或者陌生!好,没关系,这就是我们的第一站:打包发布. 为什么会有这个玩意呢,首先,这是jar的全称:JavaTM Archive (JAR) file,是的,就是java存档文件.这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新 组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些是我们要压缩的(输入),还有压缩成了什么(输出),进而将它发布(部 署). 那我们的输入(要压缩的东西)主要…
1. 属性动画(Property Animation)引入: 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation). 逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理. 补间动画则是可以对View进行一系列的动画操作,包括淡入淡出.缩放.平移.…
1.帧动画: 帧动画顾名思义,一帧一帧播放的动画就是帧动画. 帧动画和我们小时候看的动画片的原理是一样的,在相同区域快速切换图片给人们呈现一种视觉的假象感觉像是在播放动画,其实不过是N张图片在一帧一帧的切换罢了. 2.Android如何实现播放帧动画如下: (1)首先我在网上下载了一张gif动态图片,如下: 这是一个gif动态图片,其实它是很多静态图片相同区域快速切换,我们怎么样把这个gif动态图片中的静态图片从中抽离出来? 这里我使用了一个小工具gifsplitter(大家可以百度在网上自行下…
搞 Java 的年薪 40W 是什么水平? - 乔戈里的回答 - 知乎 https://www.zhihu.com/question/31437847/answer/566852748 在知乎上看了他这篇回答,感觉脑子来了很多灵感,可以从中吸取很多学习经验.为了自己的前途未来还是要多学习呀…
1. 属性动画(Property Animation)引入: 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation). 逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理. 补间动画则是可以对View进行一系列的动画操作,包括淡入淡出.缩放.平移.…
1. 帧动画: 帧动画顾名思义,一帧一帧播放的动画就是帧动画. 帧动画和我们小时候看的动画片的原理是一样的,在相同区域快速切换图片给人们呈现一种视觉的假象感觉像是在播放动画,其实不过是N张图片在一帧一帧的切换罢了. 2.Android如何实现播放帧动画如下: (1)首先我在网上下载了一张gif动态图片,如下: 这是一个gif动态图片,其实它是很多静态图片相同区域快速切换,我们怎么样把这个gif动态图片中的静态图片从中抽离出来? 这里我使用了一个小工具gifsplitter(大家可以百度在网上自行…
介绍:除了前面介绍的关于类.对象的基本语法之外,下面继续介绍Java面向对象的特性. 一. 包装类: 从JDK 1.5以后,Java就提供了自动装箱和自动拆箱操作,即: 自动装箱:将一个基本类型的变量直接赋给对应的包装类变量: 自动拆箱:允许一个包装类对象直接赋给一个对应的基本类型. 1. 基本数据类型==>String类型 利用String类的valueOf()方法 与""进行+运算 2. String类型==>基本数据类型 利用相应包装类提供的parseXxx(Stri…
一:面向过程与面向对象的区别 举例:一个人开门的动作,可以分解为开门,人进去,关门. 面向过程:人作为执行者,1:开门  2:进入   3:关门 面向对象:人作为指挥者,将开门,关门的动作都封装到门上面.1:人调用门的打开方法 2:人进入  3:人调用门的关闭方法. 以开汽车为例: 以造汽车为例: 二:对象与类 1:类和对象的概念 2:类的属性和方法(成员变量和成员方法) a:属性(成员变量) b:方法(成员方法) 三:引用数据类型…
Java:JSON解析利器JackSon JackSon基础 1.Maven项目引入 <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId>…
多媒体数据库小练习 package com.dome; import java.util.ArrayList; public class Database { // private ArrayList<CD> listCD=new ArrayList<CD>(); // private ArrayList<DVD> listDVD=new ArrayList<DVD>(); private ArrayList<Iterm> listIterm=n…
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/…