前言
来新公司的第一个任务,研究hybrid App中间层实现原理,做中间层插件开发。这个任务挺有意思,也很有挑战性,之前在DCloud虽然做过5+ App开发,但是中间层的东西确实涉及不多。本系列文章属于系列开篇cordova学习笔记,本文主要是从零开始搭建一个cordova工程,并了解cordova开发的基本内容。
创建第一个App
Apache Cordova是一个开源的移动开发框架。允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发。 应用在每个平台的具体执行被封装了起来,并依靠符合标准的API绑定去访问每个设备的功能,比如说:传感器、数据、网络状态等。
Cordova官网:http://cordova.apache.org/ Cordova中文网:http://cordova.axuer.com/ Cordova中文站:http://www.cordova.org.cn/
1.安装 Cordova CLI
npm install -g cordova
安装完成可以通过cordova -v
查看版本号,本文是在V6.5.0下构建。
2.新建项目
cordova create [ID [NAME [CONFIG]]] [options]
Create a Cordova project:
PATH —— 项目路径
ID —— app 包名 - used in
NAME —— app 名称
CONFIG —— 配置文件地址 json string whose key/values will be included in [PATH]/.cordova/config.json
Options:
--template= ... use a custom template located locally, in NPM, or GitHub.
--copy-from|src= .................. deprecated, use --template instead.
--link-to= ........................ symlink to custom www assets without creating a copy.
Example:
cordova create hello-cordova io.zhaomenghuan HelloCordova
这将会为你的cordova应用创造必须的目录。默认情况下,cordova create命令生成基于web的应用程序的骨骼,项目的主页是 www/index.html 文件。
3.添加平台
所有后续命令都需要在项目目录或者项目目录的任何子目录运行:
cd hello-cordova
给你的App添加目标平台。我们将会添加ios
和android
平台,并确保他们保存在了config.xml中:
cordova platform add ios --save
cordova platform add android --save
运行add
或者remove
平台的命令将会影响项目platforms
的内容,在这个目录中每个指定平台都有一个子目录。
注意:在你使用CLI创建应用的时候, 不要 修改/platforms/目录中的任何文件。当准备构建应用或者重新安装插件时这个目录通常会被重写。
检查你当前平台设置状况:
cordova platform is
Installed platforms:
android 6.1.2
Available platforms:
amazon-fireos ~3.6.3 (deprecated)
blackberry10 ~3.8.0
browser ~4.1.0
firefoxos ~3.6.3
webos ~3.7.0
windows ~4.4.0
wp8 ~3.8.2 (deprecated)
安装构建先决条件: 要构建和运行App,你需要安装每个你需要平台的SDK。另外,当你使用浏览器开发你可以添加 browser平台,它不需要任何平台SDK。
检测你是否满足构建平台的要求:
cordova requirements
Requirements check results for android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed android-7,android-8,android-9,android-10,android-11,android-12,android-13,android-14,android-15,android-16,android-17,android-18,android-19,android-20,android-21,android-22,android-23,android-24,android-25
Gradle: installed
初次使用我们可能会遇到下面的报错:
Error: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually.
Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory.
这是因为我们没有配置环境变量:
设置JAVA_HOME环境变量,指定为JDK安装路径
设置ANDROID_HOME环境变量,指定为Android SDK安装路径
添加Android SDK的tools和platform-tools目录到你的PATH
对于android平台下的环境配置在这里不再赘述,具体可以参考:
Android平台的要求
iOS平台的要求
Windows平台的要求
4.构建App
默认情况下, cordova create生产基于web应用程序的骨架,项目开始页面位于www/index.html 文件。任何初始化任务应该在www/js/index.js文件中的deviceready事件的事件处理函数中。
运行下面命令为所有添加的平台构建:
cordova build
你可以在每次构建中选择限制平台范围 - 这个例子中是android
:
cordova build android
注意:首次使用时,命令行提示 Downloading https://services.gradle.org/distributions/gradle-2.14.1-all.zip
,是在下载对应的gradle并自动解压安装,根据网络状况,可能耗时极长,且容易报错。
使用Cordova编译Android平台程序提示:Could not reserve enough space for 2097152KB object heap。
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
大体的意思是系统内存不够用,创建VM失败。试了网上好几种方法都不行,最后这个方法可以了:
开始->控制面板->系统->高级设置->环境变量->系统变量 新建变量: 变量名: _JAVA_OPTIONS 变量值: -Xmx512M
5.运行App
我们有多种方式运行我们的App,在不同场景下使用不同的方式有助于我们快速开发和测试我们的应用。
在命令行运行下面的命令,会重新构建App并可以在特定平台的模拟器上查看:
cordova emulate android
你可以将你的手机插入电脑,在手机上直接测试App:
cordova run android
在进行打包操作前,我们可以通过创建一个本地服务预览app UI,使用指定的端口或缺省值为8000运行本地Web服务器www/assets。访问项目:http://HOST_IP:PORT/PLATFORM/www。
cordova serve [port]
参考文档:
设置Android模拟器
Cordova run 命令参考文档
Cordova emulate 命令参考文档
6.安装插件
cordova的强大之处在于我们可以通过安装插件,拓展我们web工程的能力,比如调用系统底层API来调用设备上的底层功能,如摄像头、相册。通过cordova plugin
命令实现插件管理。
可以在这里搜索需要的插件:Cordova Plugins 。
cordova {plugin | plugins} [
add [..] {--searchpath= | --noregistry | --link | --save | --browserify | --force} |
{remove | rm} { | } --save |
{list | ls} |
search [] |
save |
]
添加插件:
cordova plugin add [...]
移除插件:
cordova plugin remove [...]
7.平台为中心的工作流开发App
上面我们是在跨平台(CLI)的工作流进行,原则上如果我们不需要自己写原生层自定义组件,我们完全可以只在CLI上完成我们的工作,当然如果需要进一步深入了解cordova native与js的通信联系,我们需要切换到平台为中心的工作流,即将我们的cordova工程导入到原生工程。例如:我们可以使用android studio导入我们新建的cordova工程。
自定义插件开发
官方推荐的插件遵循相同的目录结构,根目录下是plugin.xml
配置文件,src目录下放平台原生代码,www下放js接口代码,基本配置方法和代码结构由一定规律,我们使用plugman可以生成一个插件模板,改改就可以写一个自定义插件。
1.安装 plugman ,使用 plugman 创建插件模板
npm install -g plugman
比如这里我们创建一个nativeUI的插件:
plugman create --name NativeUI --plugin_id cordova-plugin-nativeui --plugin_version 0.0.1
参数介绍: pluginName: 插件名字:NativeUI pluginID: 插件id : cordova-plugin-nativeui oversion: 版本 : 0.0.1 directory:一个绝对或相对路径的目录,该目录将创建插件项目 variable NAME=VALUE: 额外的描述,如作者信息和相关描述
进入插件目录
cd NativeUI
给 plugin.xml 增加Android平台
plugman platform add --platform_name android
生成的插件文件结构为:
NativeUI:
├── src
└── android
└── NativeUI.java
├── www
└── NativeUI.js
└── plugin.xml
2.修改配置文件
plugin.xml
文件字段含义:
元素
描述
plugin
定义命名空间,ID和插件版本。应该用定义在http://apache.org/cordova/ns/...命名空间。plugin的ID在输入cordova plugins 命令时在插件列表中显示。
name
定义插件的名字。
description
定义插件的描述信息。
author
定义插件作者的名字。
keywords
定义与插件相关的关键字。Cordova研发组建立了公开、可搜索的插件仓库,添加的关键字能在你把插件提交到仓库后帮助被发现。
license
定义插件的许可。
engines
用来定义插件支持的Cordova版本。再添加engine 元素定义每个支持的Cordova版本。
js-module
指js文件名,而这个文件会自动以
你可能感兴趣的:(javascript,java,移动开发,ViewUI)
Spring Boot与MongoDB集成指南
行动π技术博客
spring boot mongodb 后端
1.引言在当今快速发展的软件开发领域,选择合适的技术栈对于构建高效、可扩展的应用程序至关重要。随着微服务架构和云原生应用的兴起,开发人员需要更灵活、更快速的解决方案来满足不断变化的业务需求。SpringBoot和MongoDB的结合正是这一需求的完美答案。1.1为什么选择SpringBoot和MongoDB?SpringBoot是一个开源的Java框架,它基于Spring框架,提供了快速开发和简化
814. 二叉树剪枝(JavaScript)
进击的桐人
leetcode 中等题 medium javascript LeetCode JavaScript Binary Tree Pruning
给定二叉树根结点root,此外树的每个结点的值要么是0,要么是1。返回移除了所有不包含1的子树的原二叉树。(节点X的子树为X本身,以及所有X的后代。)示例1:输入:[1,null,0,0,1]输出:[1,null,0,null,1]解释:只有红色节点满足条件“所有不包含1的子树”。右图为返回的答案。示例2:输入:[1,0,1,0,0,0,1]输出:[1,null,1,null,1]示例3:输入:[
java ffmpeg(Windows/Linux)截取视频做封面
Mr.菜园子
JAVA ffmpeg java ffmpeg java ffmpeg windows(Linux)
一、Windows版本1、下载前往FFmpeg官网http://ffmpeg.org/download.html下载Windows版本FFmpeg(我下载ffmpeg-4.0-win64-shared)2、解压下载后解压到本地(我的解压目录D:\wedive_file\ffmpeg)二、Linux版本1、下载前往FFmpeg官网http://ffmpeg.org/download.html下载Li
Java 15中的密封类:探索与实践
t0_54manong
java 开发语言 个人开发
在Java15中,密封类(SealedClasses)作为一个新的预览特性被引入,它为类和接口的继承与实现提供了一种更为精细的控制方式。本文将通过实例详细探讨密封类的使用方法、与final类的区别,以及其适用场景。一、什么是密封类?密封类允许类或接口控制哪些类可以实现或继承它。这与传统的final类不同,final类完全禁止继承,而密封类则提供了一种更灵活的方式,允许开发者显式指定哪些类可以继承它
Spring Cloud和SpringBoot版本对应关系?思维导图 代码示例(java 架构)
用心去追梦
java spring cloud spring boot
SpringCloud和SpringBoot的版本之间存在一定的对应关系,因为SpringCloud依赖于SpringBoot提供的基础功能。通常情况下,每个主要版本的SpringCloud都是与特定版本范围的SpringBoot兼容的。以下是截至2024年12月的最新版本信息和一个简化的关系图。SpringCloud和SpringBoot版本对应关系简化的关系图SpringEcosystemVe
数仓ETL测试
星月情缘02
etl 数据仓库
提取,转换和加载有助于组织使数据在不同的数据系统中可访问,有意义且可用。ETL工具是用于提取,转换和加载数据的软件。在当今数据驱动的世界中,无论大小如何,都会从各种组织,机器和小工具中生成大量数据。在传统的编程方式中,ETL都提取并进行一些转换操作,然后将转换后的数据加载到目标数据库文件等。为此,需要用任何编程语言编写代码,如Java,C#,C++等。为了避免更多编码和使用库,将通过拖放组件来减少
RESTful API:概念、实际场景应用及在 Java 和 C# 中的实现
太 阳
restful java c#
RESTfulAPI:概念、实际场景应用及在Java和C#中的实现一、什么是RESTfulAPI**RESTfulAPI(RepresentationalStateTransferAPI)**即符合REST(RepresentationalStateTransfer,表述性状态转移)架构风格的应用程序编程接口。它是一种基于HTTP协议的软件架构风格,用于设计网络应用程序。(一)主要特点资源导向:将
python中cv是什么_python里面cv是什么意思
weixin_39639568
python中cv是什么
OpenCV(OpenSourceComputerVisionLibrary)开放源代码计算机视觉库,主要算法涉及图像处理、计算机视觉和机器学习相关方法。OpenCV其实就是一堆C和C++语言的源代码文件,这些源代码文件中实现了许多常用的计算机视觉算法。OpenCV由一系列C函数和C++类构成,它有C,C++,Python和java接口,当前SDK(SoftwareDevelopmentKit软件
基于Python+Spark的气象天气分析大屏可视化系统设计与实现毕设源码
sj52abcd
python spark 课程设计 毕业设计
博主介绍:✌专注于VUE,小程序,安卓,Java,python,物联网专业,有17年开发经验,长年从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。研究的背景:随着我国气象事业的发展,气象数据的实时分析和可视化成为越来越重要的任务。然而,目前气象数据的分析与展示手段仍然较为传统,缺乏交互性,不能满足现代气象业务的需求。因此,研究一种基于Pytho
Java框架介绍:Quartz从入门到进阶(图)
hdy007
Java quartz 框架 java 作业 存储 struts
你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用java编程吗?如果这些问题中任何一个你回答是,那么你应该使用Quartz调度器。旁注:Matrix目前就大量使用到了Quartz。比如,排名统计功能的实现,在Jmatrix里通过Q
PHP代码免费加密平台:保护你的代码安全
网友阿贵
PHP php
PHP代码免费加密平台:保护你的代码安全引言在开发过程中,保护源代码的安全性是非常重要的。PHP作为一种广泛使用的服务器端脚本语言,其代码的安全性尤为重要。为了帮助开发者更好地保护自己的代码,我们推出了PHP代码免费加密平台(php.javait.cn)。本文将详细介绍该平台的功能和使用方法。平台简介1.平台功能PHP代码免费加密平台提供了以下主要功能:PHP混淆加密:无需安装组件运行,兼容主流P
Selenium 浏览器操作与使用技巧——详细解析(Java版)
Future_yzx
selenium java 测试工具
目录一、浏览器及窗口操作二、键盘与鼠标操作三、勾选复选框四、多层框架/窗口定位五、操作下拉框六、上传文件操作七、处理弹窗与alert八、处理动态元素九、使用Selenium进行网站监控前言Selenium是一款非常强大的Web自动化测试工具,能够帮助开发者与测试人员进行浏览器的自动化操作。通过Selenium,您不仅可以进行传统的自动化测试,还可以实现网站监控、动态元素处理、用户交互等高级功能。本
Quartz 架构和单体应用介绍
小马不敲代码
SpringBoot 架构 定时任务
一、摘要Quartz架构介绍SpringBootQuartz应用整合二、关于QuartzQuartz是OpenSymphony开源组织在Jobscheduling领域开源的一个作业调度框架项目,完全由Java编写,主要是为了实现在Java应用程序中进行作业调度并提供了简单却强大的机制!Quartz不仅可以单独使用,还可以与J2EE与J2SE应用程序相结合使用!同时,Quartz允许程序开发人员根据
3步搞定:java分布式WebSocket与消息队列的奇妙邂逅?
墨瑾轩
一起学学Java【一】 分布式 websocket 网络协议 java
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣嘿,亲爱的开发者们!今天我们要聊的是那个让分布式系统心跳加速的热门话题——如何用消息队列轻松实现分布式WebSocket。别急,我会一步步带你走进这个奇妙的世界,让你轻松掌握这门技艺。准备好了吗?让我们开始这场技术盛宴吧!引言在这个信息爆炸的时代,WebSoc
JAVA开源免费项目 基于Vue和SpringBoot的医院后台管理系统(附源码)
胡晗靓
java vue.js spring boot 开源 前端 开发语言
本文项目编号T170,文末自助获取源码\color{red}{T170,文末自助获取源码}T170,文末自助获取源码目录一、系统介绍二、数据库设计三、配套教程3.1启动教程3.2讲解视频3.3二次开发教程四、功能截图五、文案资料5.1选题背景5.2国内外研究现状六、核心代码6.1查询数据6.2新增数据6.3删除数据一、系统介绍在管理员功能模块确定下来的基础上,对管理员各个功能进行设计,确定管理员功
Photoshop脚本编程简介
清枫草塘
UI设计 photoshop 脚本编程
自动化对每个设计师的工作来说是很有用的。它可以在重复的任务上节省宝贵的时间,还能够帮我们更快捷、更容易的解决一系列问题。你可以使用photoshop的动作来使工作流程自动化,这是很流行的,大多数人都知道并且已经在使用的方法。今天,我们将介绍给你一种高级的自动化技巧:脚本语言。所有的这一切仅仅需要你有一点点关于JavaScript的基本知识,这对于我们中的一些网页设计师往往都是具备的。我很多年前就知
JavaScript系列(49)--游戏引擎实现详解
ᅟᅠ 一进制
JavaScript javascript 游戏引擎 开发语言
JavaScript游戏引擎实现详解今天,让我们深入探讨JavaScript的游戏引擎实现。游戏引擎是一个复杂的系统,它需要处理渲染、物理、音频、输入等多个方面,让我们一步步实现一个基础但功能完整的游戏引擎。游戏引擎基础概念小知识:游戏引擎是一个为游戏开发提供核心功能的框架,它通常包括渲染系统、物理引擎、音频系统、输入处理、资源管理等模块。通过合理的架构设计,这些模块可以协同工作,为游戏开发提供强
LeetCode—438.找到字符串中所有字母异位词(Find All Anagrams in a String)——分析及代码(Java、C++)
江南土豆
数据结构与算法 LeetCode Java 题解 C++
一、题目给定一个字符串s和一个非空字符串p,找到s中所有是p的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串s和p的长度都不超过20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例1:输入:s:"cbaebabacd"p:"abc"输出:[0,6]解释:起始索引等于0的子串是"cba",它是"abc"的字母异位词。起始索引等于6的子
Tailwind CSS 正式发布了 4.0 版本
timer_017
css 前端
1月22日,TailwindCSS正式发布了4.0版本124。以下是该版本的一些新特性:性能提升采用全新的高性能引擎Oxide,基准测试显示全量构建速度提升超3.5倍,增量构建速度提升超8倍,无新CSS的增量构建速度提升182倍。配置优化CSS优先配置:从JavaScript配置文件改为直接在CSS文件中使用@theme指令进行配置,简化项目文件结构。自动源检测:自动检测内容源,忽略.gitign
FreeMarker框架的用法指南
程序猿000001号
python 开发语言
FreeMarker框架的用法指南一、FreeMarker简介FreeMarker是一个基于模板生成文本输出的通用工具,使用纯Java编写,能够生成HTML、XML、JSON、RTF、Java源代码等多种格式的文本。它广泛应用于Web开发、邮件生成、报告生成等场景,允许将数据模型与模板文件结合,生成动态的文本输出。二、FreeMarker的基本概念模板文件(*.ftl)FreeMarker的模板文
Couchbase UI: Eventing
PersistDZ
数据存储 ui couchbase
Couchbase的Eventing页面用于创建和管理事件处理函数(EventHandlers),这些函数可以在特定的事件发生时自动触发。Eventing是Couchbase提供的一种功能,允许用户响应数据变更事件(例如文档创建、更新或删除),并在这些事件发生时执行自定义的业务逻辑。Eventing页面功能概述事件处理函数:在Eventing页面中,您可以编写JavaScript函数,以定义在特定
项目集成OpenFeign + cloud整体测试
S-X-S
java spring boot 开发语言 OpenFeign cloud
文章目录1.环境搭建1.创建模块sunrays-common-cloud-openfeign-starter2.目录结构3.OpenFeignAutoConfiguration.java自动配置类4.spring.factories5.pom.xml2.sunrays-common-cloud模块整体测试1.创建demo模块2.新建三个服务都注册到Nacos1.项目结构2.sunrays-comm
基于JavaWeb的原色蛋糕商城的设计与实现
yh1340327157
计算机毕业设计实战案例 java-ee struts kafka tomcat hibernate intellij-idea spring
开发环境开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9浏览器:谷歌浏览器后台路径地址:localhost:8080/项目名称/admin/dist/index.html前台路径地址:localh
java程序设计论文_【程序设计论文】Java程序设计教学思考(共3469字)
缘尽天野
java程序设计论文
摘要:为提高Java程序设计的教学质量,高校应深入研究课程的教学规律。通过分析Java程序设计现状及整改措施,阐述Java程序设计的教学内容,革新传统的教学模式,确保教育质量的考核指标,以供参考。关键词:Java程序设计;教学现状;整改措施;教学内容;研究Java程序设计,不仅有助于学生全面掌握Java程序设计的理论知识和专业技能,还有助于培养学生解决实际问题的能力。但从目前来看,Java程序设计
Banana JS,一个严格子集 JavaScript 的解释器
沙老师
javascript 开发语言 ecmascript c语言
项目地址:https://github.com/shajunxing/banana-js特色我的目标是剔除我在实践中总结的JavaScript语言的没用的和模棱两可的部分,只保留我喜欢和需要的,创建一个最小的语法解释器。只支持JSON兼容的数据类型和函数,函数是第一类值,函数支持闭包。我不喜欢面向对象编程,所以所有与类相关的内容都不支持。没有任何内置不可删除的全局变量、全局函数或对象成员,哪怕解释
C#AWS signatureV4对接Amazon接口
菜鸟记录
c# aws AKSK Amazon
马上要放假了,需要抓紧时间测试对接一个三方接口,对方是使用Amazon服务的,国内不多见,能查的资(代)料(码),时间紧比较紧,也没有时间去啃Amazon的文档,主要我的英文水平也不行,于是粗略过了两遍文档后下载了Amazon的示例后填入AKSK进行测试,结果返回403Forbidden,WTF,官网示例都不行?然后找接口方要了一个示例,用JAVA写的很简单,直接调用了Amazon的sdk签名然后
JAVA8新特性——Stream
阳光阿盖尔
java JAVA8 java8新特性 Stream
Stream流的出现极大的方便了我们对数据的处理,作为处理数据的一种通用方式。它提供了一种高效且灵活的方法来执行诸如过滤、映射、汇总等操作。StreamAPI可以用于任何实现了Iterable接口的数据结构,或者能够转换为支持流式处理的对象。以下是一些常见的可以与StreamAPI结合使用的数据结构或容器:集合框架:包括但不限于List,Set,Map等。List:比如ArrayList,Link
Java基础整体总结
Moso_Rx
java
目录前言1.数据类型和变量1.1数据类型1.2变量2运算符2.1常见运算符:2.2位运算符:2.3条件运算符:2.4运算符优先级:3.程序逻辑控制3.1条件语句:3.2循环语句:3.3控制语句:4.方法4.1方法的定义4.2方法的调用:4.3方法重载:4.4递归方法:5类和对象5.1类:5.2对象:6.继承和多态6.1继承:6.2多态:6.3抽象类和接口:7.抽象类和接口7.1抽象类:7.2接口:
Java——类和对象
Moso_Rx
java
目录前言1.面向对象与面向过程两者有什么区别呢?2.类2.1类的概念2.2类的定义3.类的实例化4.this引用4.1为什么需要this引用4.2this的应用5.对象的构造和初始化5.1初始化对象5.2定义构造方法5.2.1概念5.2.2特点5.2.3示例6.封装6.1封装的概念6.2访问限定符6.3包6.3.1包的概念6.3.2包的特点6.3.3包的命名规则6.3.4导入包中的类7.strat
Java基础讲解
Moso_Rx
java 开发语言
目录前言1.Java介绍1.1Java是什么及其特点1.2Java用途1.3Java的发展1.4Java开发环境的安装1.5Java的"HelloWorld"代码1.6Java的注释1.7标识符1.7.1标识符命名规则1.7.2Java中标识符的一些命名约定1.8关键字2.数据类型,变量2.1字面常量2.2数据类型2.2.1基本数据类型2.2.2引用数据类型2.3变量2.4字符串类型3.运算符总结
Enum 枚举
120153216
enum 枚举
原文地址:http://www.cnblogs.com/Kavlez/p/4268601.html Enumeration
于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样:
public static final int APPLE_FUJI = 0
Java8简明教程
bijian1013
java jdk1.8
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。
一.允许在接口中有默认方法实现
Java 8 允许我们使用default关键字,为接口声明添
Oracle表维护 快速备份删除数据
cuisuqiang
oracle 索引 快速 备份 删除
我知道oracle表分区,不过那是数据库设计阶段的事情,目前是远水解不了近渴。
当前的数据库表,要求保留一个月数据,且表存在大量录入更新,不存在程序删除。
为了解决频繁查询和更新的瓶颈,我在oracle内根据需要创建了索引。但是随着数据量的增加,一个半月数据就要超千万,此时就算有索引,对高并发的查询和更新来说,让然有所拖累。
为了解决这个问题,我一般一个月会进行一次数据库维护,主要工作就是备
java多态内存分析
麦田的设计者
java 内存分析 多态原理 接口和抽象类
“ 时针如果可以回头,熟悉那张脸,重温嬉戏这乐园,墙壁的松脱涂鸦已经褪色才明白存在的价值归于记忆。街角小店尚存在吗?这大时代会不会牵挂,过去现在花开怎么会等待。
但有种意外不管痛不痛都有伤害,光阴远远离开,那笑声徘徊与脑海。但这一秒可笑不再可爱,当天心
Xshell实现Windows上传文件到Linux主机
被触发
windows
经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下;之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法嘛;
我是怎么操作的:
1、打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面;(经常第一步都不顺利,无法挂载Windo
类的加载ClassLoader
肆无忌惮_
ClassLoader
类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。
其中重要的方法为findClass(String name)。
如何写一个自己的类加载器呢?
首先写一个便于测试的类Student
html5写的玫瑰花
知了ing
html5
<html>
<head>
<title>I Love You!</title>
<meta charset="utf-8" />
</head>
<body>
<canvas id="c"></canvas>
google的ConcurrentLinkedHashmap源代码解析
矮蛋蛋
LRU
原文地址:
http://janeky.iteye.com/blog/1534352
简述
ConcurrentLinkedHashMap 是google团队提供的一个容器。它有什么用呢?其实它本身是对
ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。详细介绍可以参见
http://code.google.com/p/concurrentlinke
webservice获取访问服务的ip地址
alleni123
webservice
1. 首先注入javax.xml.ws.WebServiceContext,
@Resource
private WebServiceContext context;
2. 在方法中获取交换请求的对象。
javax.xml.ws.handler.MessageContext mc=context.getMessageContext();
com.sun.net.http
菜鸟的java基础提升之道——————>是否值得拥有
百合不是茶
1,c++,java是面向对象编程的语言,将万事万物都看成是对象;java做一件事情关注的是人物,java是c++继承过来的,java没有直接更改地址的权限但是可以通过引用来传值操作地址,java也没有c++中繁琐的操作,java以其优越的可移植型,平台的安全型,高效性赢得了广泛的认同,全世界越来越多的人去学习java,我也是其中的一员
java组成:
通过修改Linux服务自动启动指定应用程序
bijian1013
linux
Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下: chkconfig
功能说明:检查,设置系统的各种服务。
语 法:chkconfig [ -- add][ -- del][ -- list][系统服务] 或 chkconfig [ -- level <</SPAN>
spring拦截器的一个简单实例
bijian1013
java spring 拦截器 Interceptor
Purview接口
package aop;
public interface Purview {
void checkLogin();
}
Purview接口的实现类PurviesImpl.java
package aop;
public class PurviewImpl implements Purview {
public void check
[Velocity二]自定义Velocity指令
bit1129
velocity
什么是Velocity指令
在Velocity中,#set,#if, #foreach, #elseif, #parse等,以#开头的称之为指令,Velocity内置的这些指令可以用来做赋值,条件判断,循环控制等脚本语言必备的逻辑控制等语句,Velocity的指令是可扩展的,即用户可以根据实际的需要自定义Velocity指令
自定义指令(Directive)的一般步骤
&nbs
【Hive十】Programming Hive学习笔记
bit1129
programming
第二章 Getting Started
1.Hive最大的局限性是什么?一是不支持行级别的增删改(insert, delete, update)二是查询性能非常差(基于Hadoop MapReduce),不适合延迟小的交互式任务三是不支持事务2. Hive MetaStore是干什么的?Hive persists table schemas and other system metadata.
nginx有选择性进行限制
ronin47
nginx 动静 限制
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;...
server {...
location ~.*\.(gif|png|css|js|icon)$ {
java-4.-在二元树中找出和为某一值的所有路径 .
bylijinnan
java
/*
* 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it.
* 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the node otherwise
Netty学习笔记
bylijinnan
java netty
本文是阅读以下两篇文章时:
http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html
http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
我的一些笔记
===
js获取项目路径
cngolon
js
//js获取项目根路径,如: http://localhost:8083/uimcardprj
function getRootPath(){
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath=window.document.locati
oracle 的性能优化
cuishikuan
oracle SQL Server
在网上搜索了一些Oracle性能优化的文章,为了更加深层次的巩固[边写边记],也为了可以随时查看,所以发表这篇文章。
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。(这点本人曾经做过实例验证过,的确如此哦!
Shell变量和数组使用详解
daizj
linux shell 变量 数组
Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="w3cschool.cc"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用ba
编程中的一些概念,KISS、DRY、MVC、OOP、REST
dcj3sjt126com
REST
KISS、DRY、MVC、OOP、REST (1)KISS是指Keep It Simple,Stupid(摘自wikipedia),指设计时要坚持简约原则,避免不必要的复杂化。 (2)DRY是指Don't Repeat Yourself(摘自wikipedia),特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。 (3)OOP 即Object-Orie
[Android]设置Activity为全屏显示的两种方法
dcj3sjt126com
Activity
1. 方法1:AndroidManifest.xml 里,Activity的 android:theme 指定为" @android:style/Theme.NoTitleBar.Fullscreen" 示例: <application
solrcloud 部署方式比较
eksliang
solrCloud
solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成一个集群。 第二种:将Zookeeper服务器独立的配置一个集群,然后将solr交给Zookeeper进行管理
谈谈第一种:每启动一个solr服务器就内嵌的启动一个Zoo
Java synchronized关键字详解
gqdy365
synchronized
转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html
多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。
同步机制可以使用synchronized关键字实现。
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
当s
js实现登录时记住用户名
hw1287789687
记住我 记住密码 cookie 记住用户名 记住账号
在页面中如何获取cookie值呢?
如果是JSP的话,可以通过servlet的对象request 获取cookie,可以
参考:http://hw1287789687.iteye.com/blog/2050040
如果要求登录页面是html呢?html页面中如何获取cookie呢?
直接上代码了
页面:loginInput.html
代码:
<!DOCTYPE html PUB
开发者必备的 Chrome 扩展
justjavac
chrome
Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench
ChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-pl
算法机试题
李亚飞
java 算法 机试题
在面试机试时,遇到一个算法题,当时没能写出来,最后是同学帮忙解决的。
这道题大致意思是:输入一个数,比如4,。这时会输出:
&n
正确配置Linux系统ulimit值
字符串
ulimit
在Linux下面部 署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用 其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进
hibernate调用返回游标的存储过程
Supanccy2013
java DAO oracle Hibernate jdbc
注:原创作品,转载请注明出处。
上篇博文介绍的是hibernate调用返回单值的存储过程,本片博文说的是hibernate调用返回游标的存储过程。
此此扁博文的存储过程的功能相当于是jdbc调用select 的作用。
1,创建oracle中的包,并在该包中创建的游标类型。
---创建oracle的程
Spring 4.2新特性-更简单的Application Event
wiselyman
application
1.1 Application Event
Spring 4.1的写法请参考10点睛Spring4.1-Application Event
请对比10点睛Spring4.1-Application Event
使用一个@EventListener取代了实现ApplicationListener接口,使耦合度降低;
1.2 示例
包依赖
<p