移动端布局
移动端现状
内核
当前国产主流手机浏览器,内核都是Webkit
分辨率:手机分辨率,碎片化太多
Android:480x800, 480x854, 540x960, 720x1280,1080x1920 等
iPhone:640x960, 640x1136, 750x1334, 1242x2208 等
2K、4K等高分辨率
在开发过程中,Google chrome是主要模拟手机的手段之一,步骤:
鼠标右键 检查 或 F12 控制器界面方向;
选择 手机模式
选择 手机类型及尺寸;调节适当的显示比例;
点右键 查看 页面元素;
viewport(视口)定义:
视口:浏览器(PC、移动端)显示页面内容的屏幕区域;不同的屏幕的大小,我们看到的区域也是不同的;
PC端的页面直接放入手机屏显示,不友好,可以用viewport来解决
HTML宽度默认为980px,不是很合适;
各手机型号尺寸:
设备
尺寸(英寸)
开发尺寸(px)
物理像素比(dpr)
iphone3G
3.5
320*480
1.0
iphone4/4s
3.5
3 ...
枚举、注解和反射
枚举简介JDK1.5引入了新的类型——枚举。
在JDK1.5 之前,我们定义常量都是: public static fianl…. 。很难管理。
枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。用于定义有限数量的一组同类常量,例如:
123456错误级别: 低、中、高、急一年的四季: 春、夏、秋、冬商品的类型: 美妆、手机、电脑、男装、女装...
在枚举类型中定义的常量是该枚举类型的实例。
定义格式123权限修饰符 enum 枚举名称 { 实例1,实例2,实例3,...实例n;}
12345678910public enum Level { LOW(1), MEDIUM(2), HIGH(3), URGENT(4); private int levelValue; private Level(int levelValue) { this.levelValue = levelValue; } public int getLevelValue() { return levelValue; & ...
XML和JSON的使用(java)
XML概述XML全称可扩展标记语言(eXtensible Markup Language)。是一种用于标记电子文件使其具有结构性的标记语言。
在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。
特性:
xml具有平台无关性, 是一门独立的标记语言.
xml具有自我描述性
用途
网络数据传输
数据存储
配置文件
.XML文件是保存XML数据的一种方式,XML数据也可以以其他的方式存在(如在内存中构建XML数据)。不要将XML语言狭隘的理解成XML文件。
###XML语法
基本语法在XML文档开头,要先写XML文档声明,格式如下:
1<?xml versio ...
Java多线程
多线程概述==多线程:栈空间独立,堆内存共享==
多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。线程是比进程更小的执行单位,线程是在进程的基础上进行的进一步划分。所谓多线程是指一个进程在执行过程中可以产生多个线程,这些线程可以同时存在、同时运行,一个进程可能包含了多个同时执行的线程。
进程与线程
进程:
正在运行的应用程序:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,即每个进程都有着自己的堆、栈等且是互不共享的。
线程:
进程中的一个执行路径(一段程序从执行到结束的整个过程),共享一个内存空间,线程之间可以自由切换,并发执行,一个进程最少有一个线程
线程实际上是在进程的基础上进一步划分的,一个进程执行后,里面的若干执行路径又可以划分为若干个线程
线程调度
分时调度
所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。
抢占式调度
优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度。
...
Java泛型
概述泛型,即“参数化类型”。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
注意:
在编译之后程序会采取去泛型化的措施。也就是说Java中的泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。也就是说,泛型信息不会进入到运行时阶段。
作用:
提高代码复用率
泛型中的类型在使用时指定,不需要强制类型转换(类型安全,编译器会检查类型)
使用泛型类12345678910111213141516171819//定义一个泛型类:public class ClassName<T>{ private T data; public T getData() { return data; } public void setData(T data) { this.data = data; }}//使用该 ...
Java异常处理
什么是异常异常是在程序中导致程序中断运行的一种指令流。
先来看如下代码
123456789public class ExceptionDemo{ public static void main(String[] args){ int i = 10 ; int j = 0 ; System.out.println("============= 计算开始 =============") ; System.out.println(i + "/" + j + "=" + i / j); System.out.println("============= 计算结束 =============") ; }};
运行结果:
123============= 计算开始 =============Exception in thread "main" java.lang.ArithmeticE ...
Java面向对象高级
抽象类概念有时候我们需要这样一个类,它不需要被实例化,也不需要实现完整的方法,它只是用来被继承的,用来限制子类的一个“规范”。这样的类我们就可以将它定义为抽象类,抽象类内的方法可以定义为抽象方法。
12345678抽象类必须使用abstract class声明一个抽象类中可以没有抽象方法。抽象方法必须写在抽象类或者接口中只声明而未实现的方法称为抽象方法(未实现是指:没有“{}“方法体),抽象方法必须使用abstract关键字声明。 格式: abstract class 类名{ //抽象类 public abstract 返回值类型 方法名(); //抽象方法,只声明而未实现 }
注意:
在抽象类的使用中有几个原则:
抽象类本身是不能直接进行实例化操作的,即:不能直接使用关键字new完成。
一个抽象类必须被子类所继承,被继承的子类(如果不是抽象类)则**必须覆写(重写)**抽象类中的全部抽象方法。
常见的问题:
抽象类不能使用final声明,因为final修饰的类是不能有子类的 ,而抽象类必须有子 ...
Java面向对象进阶
static关键字
static表示“静态”的意思,可以用来修饰成员变量和成员方法。
static的主要作用在于创建独立于具体对象的域变量或者方法
简单理解:
被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。 并且不会因为对象的多次创建而在内存中建立多份数据
注意
静态成员在类加载时加载并初始化。
无论一个类存在多少个对象 , 静态的属性, 永远在内存中只有一份(可以理解为所有对象公用 )
在访问时:静态不能访问非静态 , 非静态可以访问静态 ! 静态资源的执行时机可能早于非静态资源,一定不会晚于非静态资源
final关键字
final表示“最终”的意思,可以用来修饰属性、变量、类和方法
final修饰的属性、变量就成为了常量,无法对其再次进行赋值。final 修饰的局部变量,只能赋值一次(可以先声明后赋值);final修饰的成员属性,必须在声明时赋值!
全局常量:public static final 数据类型 变量名
final修饰的类不可以被继承
final修饰的方法不能被子类重写
代码块 ...
Java面向对象基础
初识面向对象面向过程和面向对象面向过程思想:
是把模型分解成一步一步的过程。步骤清晰简单,第一步做什么,第二步做什么……
面向过程适合处理一些较为简单的问题
面向对象思想:
物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
面向对象适合处理复杂的问题,适合处理需要多人协作的问题!
对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路、来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。
什么是面向对象面向对象编程(Object-Oriented Progrsmming,OOP)是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。
面向对象编程的本质就是:以类的方式组织代码,以对象的形式封装数据。
面向对象的核心思想:
三大思想:面向对象思想从概念上讲分为以下三种OOA、OOD、OOP
OOA:面向对象分析(Object Oriented Analysis)
OOD:面向对象设计(Object Oriented Design) ...
简单的Java加减乘除计算器(适合新手)
本人Java新手一枚,刚学完Java数据类型、流程控制、数组、方法等基础语法知识。
尝试写了一个简单的计算器,实现了加减乘除功能,并可以循环接收数据。
代码有待改进,希望各位大佬多多指点 :beers:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364public class calculator { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(true){ System.out.println("请输入需要计算的第一个数字"); double a = in.nextDouble(); System.out.println(& ...