- FastApi快速构建一个web项目
kujirashark
fastapi前端python
FastApi快速构建一个web项目已经使用FastApi很久了。这个一个非常优秀的框架。和flask一样能够快速构建一个web服务。开发效率非常之高。今天我一个Demo来介绍一下这个框架的使用。供大家学习参考。项目介绍本项目主要介绍fastapi快速编写web服务,通过案例分别介绍项目搭建,接口编写,文档生成,模板渲染,excel读取,镜像部署等项目中常见的问题。项目目录构成datalearni
- FastAPI 之自动化测试数据库接口
somenzz
数据库单元测试pythonjavamysql
今天的文章分享如下在FastAPI框架下,使用pytest来自动化测试数据库相关的接口,文章的最后给出全部代码。最近越来越喜欢使用FastAPI来写后端服务了,因为它是Python领域性能最好的Web框架,它专注于提供高性能的WebAPI,其他方面并不限制你的手脚,可以随意使用你喜欢的三方库,这点类似于Flask,可以量身定制你的后端架构,以满足自己的需求。需要说明的是,后端服务基本是离不开关系型
- python api 框架_(进阶篇)Python web框架FastAPI——一个比Flask和Tornada更高性能的API 框架...
weixin_39576104
pythonapi框架
前言上一篇已经初步了解了FastAPI的基本使用,但是如果想要真正把FastAPI部署上线到服务器,那么你需要了解更多,学习更多。所以本篇内容将注重于FastAPI的项目生产环境,诸如数据库,路由蓝图,数据验证等问题在FastAPI中的具体操作和一些自己碰到的坑,分享给正在进攻FastAPI的各位小伙伴。蓝图事实上,FastAPI并没有关于蓝图(Blueprint)的定义,在FastAPI中使用I
- fastapi 关于线程池、同步、异步的问题解答汇总
python
seo优化:如何在python的asyncio里面执行同步函数并且不阻塞事件循环如何在python的fastapi里面执行同步函数并且不阻塞事件循环fastapi的视图函数加不加async的区别fastapi如何在异步视图函数里面执行同步代码?uvicorn如何调节线程池大小peewee会阻塞fastapi的异步协程吗pythonasyncio,如何在异步中执行同步函数怎么办?
- 【FastAPI】P1 安装与第一个 FastAPI 应用
脚踏实地的大梦想家
#FastAPIfastapi
目录FastAPI安装第一个FastAPI应用代码拆解分析FastAPI安装FastAPI是用于快速构建API的web框架,依赖Python3.8及更高版本。使用pip命令安装fastapi:pipinstallfastapi安装异步处理ASGI的服务器Uvicorn:pipinstall"uvicorn[standard]"补充知识:Uvicorn是ASGI的一个实现,它基于Starlette和
- 【Python FastAPI】一篇文章教你从零搭建自己的网站后台!(新手向)
Runfreeone
FastAPI搭建网站pythonfastapi开发语言
教程说明本教程利用Python异步编程方法,基于FastAPI和uvicorn库来快速搭建并运行网站后台。由于教程偏向于入门,所以我将介绍网站完整建立过程,并对每个可能的疑惑点进行详细解释;如果你已经有自己的服务器,并且掌握SSH和FTP的连接方法,可以直接跳转至第三步。文章预览:教程说明一、准备工作1.申请云服务器2.申请自己的域名二、配置Xshell和Xftp三、服务器环境配置1.创建Pyth
- python投票系统项目ppt_python fastApi实战项目 - 爱投票管理系统(一)
Mustafa Xia
python投票系统项目ppt
一、闲来无事,在工作之余自己研究了一下python的异步框架-fastapi,并写包括1、部门管理2、角色管理3、用户管理4、菜单管理5、登录日志6、操作日志六个基础功能模块,演示链接:https://www.lovevote.cn,账号:admin,密码:admin二、fastapi介绍1、fastapi官网:https://fastapi.tiangolo.com,中文官网:https://f
- FastAPI从入门到实战(18)——FastAPI 中间件、CORS、后台任务
阿汤哥的程序之路
pythonfastapi
中间件@app.middleware('http')asyncdefadd_process_time_header(request:Request,call_next):#call_next将接收request请求做为参数start_time=time.time()response=awaitcall_next(request)process_time=time.time()-start_time
- FastAPI从入门到实战(19)——FastAPI Testing 测试用例
阿汤哥的程序之路
pythonfastapi服务器
fromfastapi.testclientimportTestClientfromrunimportapp"""Testing测试用例"""client=TestClient(app)#先pipinstallpytestdeftest_run_bg_task():#函数名用“test_”开头是pytest的规范。注意不是asyncdefresponse=client.post(url="/cha
- FastAPI从入门到实战(2)——Pydantic模型
九陌斋
FastAPIfastapipython
前面了解了一下python的类型提示,这里就接着记录一下Pydantic这个用来执行数据校验的库。而且FastAPI就是基于python的类型提示和Padantic实现的数据验证。简介官网:https://pydantic-docs.helpmanual.io/Pydantic就是一个基于Python类型提示来定义数据验证、序列化和文档(使用JSON模式)的库;使用Python的类型提示来进行数据
- FastAPI从入门到实战(17)——FastAPI 项目中配置 SQLAlchemy ORM
阿汤哥的程序之路
pythonfastapi
database.pyfromsqlalchemyimportcreate_enginefromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerSQLALCHEMY_DATABASE_URL='sqlite:///./coronavirus.sqlite3'#SQLALCHEMY
- pyinstaller 打包 fastapi uvicorn报错pydantic
过路客甲乙
fastapi
pyinstaller打包fastapiuvicorn报错pydantic:AttributeError:Failedtoretrieveattributecompiledfrommodulepydantic用开发工具调试运行都可以跑,一打包就报错。分析:看描述是属性错误,也就是可能存在版本过高导致的一些兼容性问题解决办法:找一台电脑通过终端打包,如果不报错再看版本号。pipshowfastapi
- FastAPI使用异步motor实现对mongodb的增删改查
waketzheng
fastapimongodb数据库
一、环境准备:需要有mongodb和poetry以及Python3.10+二、克隆示例代码到本地
[email protected]:waketzheng/fastapi_async_mongo_demo.git三、安装依赖cdfastapi_async_mongo_demopoetryshellpoetryinstall四、启动服务pythonapp/main.py五、访问本地文档htt
- fastapi(二十三)-高级用户指南
vanexph
python
路径操作高级配置OpenAPI的operationId您可以使用operationId参数设置在路径操作中使用的OpenAPIoperation_id。fromfastapiimportFastAPIapp=FastAPI()@app.get("/items/",operation_id="some_specific_id_you_define")asyncdefread_items():retu
- fastapi 大型应用_FastAPI 快速入门
研究生欧阳同学呀
fastapi大型应用
FastAPl.pngFastAPIframework,highperformance,easytolearn,fasttocode,readyforproductionFastAPI框架,高性能,易于学习,快速编码,准备投入生产。FastAPI是一个现代的、快速的(高性能的)web框架,用于基于标准Python类型提示用Python3.6+构建api。主要特点如下:快:非常高的性能,与NodeJ
- FastAPI(46)- JSONResponse
小菠萝测试笔记
javapythonvuedjangojavascript
背景创建FastAPI路径操作函数时,通常可以从中返回任何数据:字典、列表、Pydantic模型、数据库模型等默认情况下,FastAPI会使用jsonable_encoder自动将该返回值转换为JSON字符串然后,FastAPI会将与JSON兼容的数据(例如dict)放在JSONResponse中,然后将JSONResponse返回给客户端总结:默认情况下,FastAPI将使用JSONRespon
- FastAPI(48)- 自定义响应之 HTMLResponse、PlainTextResponse
小菠萝测试笔记
javapythonhtmljshttp
背景上一篇文章讲了通过Response自定义响应,但有一个缺点如果直接返回一个Response,数据不会自动转换,也不会显示在文档中这一节开始讲自定义响应会讲解多个响应类型JSONResponseHTMLResponse、PlainTextResponseORJSONResponse、UJSONResponseRedirectResponseStreamingResponse、FileRespon
- FastAPI(50)- 自定义响应之 RedirectResponse
小菠萝测试笔记
javapythonhttplinuxspring
更多自定义响应类型JSONResponseORJSONResponse、UJSONResponseHTMLResponse、PlainTextResponseStreamingResponse、FileResponseRedirectResponse作用返回一个HTTP重定向响应默认情况下使用307状态码(临时重定向)实际代码fromfastapiimportFastAPIfromfastapi.
- FastAPI 中的 OAuth2PasswordBearer 授权方法详解
ktianc
pythonfastapipython
FastAPI中的OAuth2PasswordBearer授权方法详解官方文档:https://fastapi.tiangolo.com/zh/tutorial/security/first-steps/#fastapi-oauth2passwordbearerFastAPI管理后台框架:https://gitee.com/ktianc/kinitFastAPI中的OAuth2PasswordBe
- gunicorn日志--access-logformat不起作用
waketzheng
gunicorn
使用gunicorn+supervisor启动fastapi服务,命令如下:gunicornmain:app--workers2--worker-classuvicorn.workers.UvicornWorker--bind127.0.0.1:8000--access-logfile'-'其中accesslog记录到的内容如下:176.123.7.11:0-"GET/HTTP/1.0"200只记
- FastAPI使用ORJSONResponse作为默认的响应类型
waketzheng
fastapi
FastAPI默认使用Python的标准库来做json解析,如果换成rust编写的orjson,速度上会快一些1.安装依赖pipinstallorjson2.设置为默认响应类型fromfastapi.responsesimportORJSONResponseapp=FastAPI(title='xxx', default_response_class=ORJSONResponse)
- node.js后端+小程序前端+mongoDB(增删改查)
淼学派对
nodenode.js小程序前端
前言今天我对比了以下node.js的express与python的fastAPI,我决定我还是出一期关于node.js+mangoDB+小程序的小案例吧。不是python的fastAPI不好用,因为fastAPI是python较新的技术,我不敢果断发出教学文章(这件事情还是留着给python大佬们叭~)技术栈node.js微信小程序JavaScriptmongoDBexpress(node.jsw
- Postgres与DynamoDB:选择哪个数据库
拒绝者zzzz
数据库oraclepythondjangofastapi
启动新项目时需要做出的决定之一是使用哪个数据库。如果您使用的是Django这样的包含电池的框架,那么没有理由再三考虑。选择一个受支持的数据库引擎,就可以了。另一方面,如果你使用像FastAPI或Flask这样的微框架,你需要自己做出这个决定。您的决策会影响您需要哪些库以及如何进行数据建模。虽然你可能只是接触Postgres,但还有其他选择。其中之一是DynamoDB。与Postgres一样,它也是
- FastAPI从入门到实战(14)——带yield的依赖
阿汤哥的程序之路
pythonfastapipython
fromfastapiimportAPIRouter,Dependsapp14=APIRouter()"""Dependencieswithyield带yield的依赖"""#这个需要Python3.7才支持,Python3.6需要pipinstallasync-exit-stackasync-generator#以下都是伪代码asyncdefget_db():db="db_connection"
- FastAPI从入门到实战(15)——OAuth2 密码模式和 FastAPI 的 OAuth2PasswordBearer
阿汤哥的程序之路
pythonfastapipython
fromtypingimportOptionalfromfastapiimportAPIRouter,Depends,HTTPExceptionfromfastapi.securityimportOAuth2PasswordBearer,OAuth2PasswordRequestFormfrompydanticimportBaseModelfromstarletteimportstatusapp1
- FastAPI从入门到实战(13)——全局依赖
阿汤哥的程序之路
pythonfastapipython
fromtypingimportOptionalfromfastapiimportAPIRouter,Header,HTTPException,Depends#app13=APIRouter()"""GlobalDependencies全局依赖"""asyncdefverify_token(x_token:str=Header(...)):"""没有返回值的子依赖"""ifx_token!="fa
- fastapi框架
阿汤哥的程序之路
pythonfastapi
fastapi框架fastapi,一个用于构建API的现代、快速(高性能)的异步web框架,使用Python3.6+并基于标准的Python类型提示。fastapi是建立在Starlette和Pydantic基础上的Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工具包,是构建高性能Asyncio服务的理性选择。快速:可
- 三分钟了解 Python3 的异步 Web 框架 FastAPI
又拍云 UPYUN
apiAPIJAVAJDKNetbeans
快速编码,功能完善。从启动到部署,实例详解异步py3框架选择FastAPI的原因。FastAPI介绍FastAPI与其它Python-Web框架的区别在FastAPI之前,Python的Web框架使用的是django、flask、tornado三种Web框架。django自带admin,可快速构建,但是比较笨重。如果是mvc形式的开发,很多已经封装好了,的确蛮合适。但如果是restful风格设计,
- fastapi python2.7_Python-FastAPI 异步框架开发博客系统(一)数据篇
weixin_39765588
fastapipython2.7
Frodo的第一个版本已经实现了,在下一个版本前,我将目前的开发思路整理成三篇文章,分别是数据篇、通信篇、异步篇。简要系统分析数据库设计是紧跟需求来的,在我本科学UML时,数据库设计是在需求分析和系统分析之后,架构设计之前的设计。但博客项目的需求比较简单,主要大需求:内容管理(文章、用户、标签、评论、反馈、动态的增删改查)管理员用户的验证、评论人用户的验证小功能:边栏组件、归档、分类等再简单地做一
- Python FastAPI库:构建高性能Web应用
程序员晓晓
pythonfastapi前端Python学习Python编程Python库web应用
引言:PythonFastAPI是一个快速(高性能)的Web框架,用于构建基于Python的RESTfulAPI。它结合了Python的快速执行速度和标准化的API开发,使得我们能够快速构建出高效、安全和易于维护的Web应用程序。本文将详细介绍如何使用PythonFastAPI库,包括安装、基本用法、路由操作、请求和响应处理、数据库集成等内容,并提供丰富的代码示例。一、安装PythonFastAP
- java线程的无限循环和退出
3213213333332132
java
最近想写一个游戏,然后碰到有关线程的问题,网上查了好多资料都没满足。
突然想起了前段时间看的有关线程的视频,于是信手拈来写了一个线程的代码片段。
希望帮助刚学java线程的童鞋
package thread;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date
- tomcat 容器
BlueSkator
tomcatWebservlet
Tomcat的组成部分 1、server
A Server element represents the entire Catalina servlet container. (Singleton) 2、service
service包括多个connector以及一个engine,其职责为处理由connector获得的客户请求。
3、connector
一个connector
- php递归,静态变量,匿名函数使用
dcj3sjt126com
PHP递归函数匿名函数静态变量引用传参
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
- 属性颜色字体变化
周华华
JavaScript
function changSize(className){
var diva=byId("fot")
diva.className=className;
}
</script>
<style type="text/css">
.max{
background: #900;
color:#039;
- 将properties内容放置到map中
g21121
properties
代码比较简单:
private static Map<Object, Object> map;
private static Properties p;
static {
//读取properties文件
InputStream is = XXX.class.getClassLoader().getResourceAsStream("xxx.properti
- [简单]拼接字符串
53873039oycg
字符串
工作中遇到需要从Map里面取值拼接字符串的情况,自己写了个,不是很好,欢迎提出更优雅的写法,代码如下:
import java.util.HashMap;
import java.uti
- Struts2学习
云端月影
最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置。
配置文件精简了,的确是简便了开发过程,但是,我们熟悉的配置突然disappear了,真是一下很不适应。跟着潮流走吧,看看该怎样来搞定convention-plugin。
使用Convention插件,你需要将其JAR文件放
- Java新手入门的30个基本概念二
aijuans
java新手java 入门
基本概念: 1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率。 2.OOP中最重要的思想是类,类是模板是蓝图,
- jedis 简单使用
antlove
javarediscachecommandjedis
jedis.RedisOperationCollection.java
package jedis;
import org.apache.log4j.Logger;
import redis.clients.jedis.Jedis;
import java.util.List;
import java.util.Map;
import java.util.Set;
pub
- PL/SQL的函数和包体的基础
百合不是茶
PL/SQL编程函数包体显示包的具体数据包
由于明天举要上课,所以刚刚将代码敲了一遍PL/SQL的函数和包体的实现(单例模式过几天好好的总结下再发出来);以便明天能更好的学习PL/SQL的循环,今天太累了,所以早点睡觉,明天继续PL/SQL总有一天我会将你永远的记载在心里,,,
函数;
函数:PL/SQL中的函数相当于java中的方法;函数有返回值
定义函数的
--输入姓名找到该姓名的年薪
create or re
- Mockito(二)--实例篇
bijian1013
持续集成mockito单元测试
学习了基本知识后,就可以实战了,Mockito的实际使用还是比较麻烦的。因为在实际使用中,最常遇到的就是需要模拟第三方类库的行为。
比如现在有一个类FTPFileTransfer,实现了向FTP传输文件的功能。这个类中使用了a
- 精通Oracle10编程SQL(7)编写控制结构
bijian1013
oracle数据库plsql
/*
*编写控制结构
*/
--条件分支语句
--简单条件判断
DECLARE
v_sal NUMBER(6,2);
BEGIN
select sal into v_sal from emp
where lower(ename)=lower('&name');
if v_sal<2000 then
update emp set
- 【Log4j二】Log4j属性文件配置详解
bit1129
log4j
如下是一个log4j.properties的配置
log4j.rootCategory=INFO, stdout , R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appe
- java集合排序笔记
白糖_
java
public class CollectionDemo implements Serializable,Comparable<CollectionDemo>{
private static final long serialVersionUID = -2958090810811192128L;
private int id;
private String nam
- java导致linux负载过高的定位方法
ronin47
定位java进程ID
可以使用top或ps -ef |grep java
![图片描述][1]
根据进程ID找到最消耗资源的java pid
比如第一步找到的进程ID为5431
执行
top -p 5431 -H
![图片描述][2]
打印java栈信息
$ jstack -l 5431 > 5431.log
在栈信息中定位具体问题
将消耗资源的Java PID转
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
bylijinnan
函数
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandNFromRand5 {
/**
题目:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数。
解法1:
f(k) = (x0-1)*5^0+(x1-
- PL/SQL Developer保存布局
Kai_Ge
近日由于项目需要,数据库从DB2迁移到ORCAL,因此数据库连接客户端选择了PL/SQL Developer。由于软件运用不熟悉,造成了很多麻烦,最主要的就是进入后,左边列表有很多选项,自己删除了一些选项卡,布局很满意了,下次进入后又恢复了以前的布局,很是苦恼。在众多PL/SQL Developer使用技巧中找到如下这段:
&n
- [未来战士计划]超能查派[剧透,慎入]
comsci
计划
非常好看,超能查派,这部电影......为我们这些热爱人工智能的工程技术人员提供一些参考意见和思想........
虽然电影里面的人物形象不是非常的可爱....但是非常的贴近现实生活....
&nbs
- Google Map API V2
dai_lm
google map
以后如果要开发包含google map的程序就更麻烦咯
http://www.cnblogs.com/mengdd/archive/2013/01/01/2841390.html
找到篇不错的文章,大家可以参考一下
http://blog.sina.com.cn/s/blog_c2839d410101jahv.html
1. 创建Android工程
由于v2的key需要G
- java数据计算层的几种解决方法2
datamachine
javasql集算器
2、SQL
SQL/SP/JDBC在这里属于一类,这是老牌的数据计算层,性能和灵活性是它的优势。但随着新情况的不断出现,单纯用SQL已经难以满足需求,比如: JAVA开发规模的扩大,数据量的剧增,复杂计算问题的涌现。虽然SQL得高分的指标不多,但都是权重最高的。
成熟度:5星。最成熟的。
- Linux下Telnet的安装与运行
dcj3sjt126com
linuxtelnet
Linux下Telnet的安装与运行 linux默认是使用SSH服务的 而不安装telnet服务 如果要使用telnet 就必须先安装相应的软件包 即使安装了软件包 默认的设置telnet 服务也是不运行的 需要手工进行设置 如果是redhat9,则在第三张光盘中找到 telnet-server-0.17-25.i386.rpm
- PHP中钩子函数的实现与认识
dcj3sjt126com
PHP
假如有这么一段程序:
function fun(){
fun1();
fun2();
}
首先程序执行完fun1()之后执行fun2()然后fun()结束。
但是,假如我们想对函数做一些变化。比如说,fun是一个解析函数,我们希望后期可以提供丰富的解析函数,而究竟用哪个函数解析,我们希望在配置文件中配置。这个时候就可以发挥钩子的力量了。
我们可以在fu
- EOS中的WorkSpace密码修改
蕃薯耀
修改WorkSpace密码
EOS中BPS的WorkSpace密码修改
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 201
- SpringMVC4零配置--SpringSecurity相关配置【SpringSecurityConfig】
hanqunfeng
SpringSecurity
SpringSecurity的配置相对来说有些复杂,如果是完整的bean配置,则需要配置大量的bean,所以xml配置时使用了命名空间来简化配置,同样,spring为我们提供了一个抽象类WebSecurityConfigurerAdapter和一个注解@EnableWebMvcSecurity,达到同样减少bean配置的目的,如下:
applicationContex
- ie 9 kendo ui中ajax跨域的问题
jackyrong
AJAX跨域
这两天遇到个问题,kendo ui的datagrid,根据json去读取数据,然后前端通过kendo ui的datagrid去渲染,但很奇怪的是,在ie 10,ie 11,chrome,firefox等浏览器中,同样的程序,
浏览起来是没问题的,但把应用放到公网上的一台服务器,
却发现如下情况:
1) ie 9下,不能出现任何数据,但用IE 9浏览器浏览本机的应用,却没任何问题
- 不要让别人笑你不能成为程序员
lampcy
编程程序员
在经历六个月的编程集训之后,我刚刚完成了我的第一次一对一的编码评估。但是事情并没有如我所想的那般顺利。
说实话,我感觉我的脑细胞像被轰炸过一样。
手慢慢地离开键盘,心里很压抑。不禁默默祈祷:一切都会进展顺利的,对吧?至少有些地方我的回答应该是没有遗漏的,是不是?
难道我选择编程真的是一个巨大的错误吗——我真的永远也成不了程序员吗?
我需要一点点安慰。在自我怀疑,不安全感和脆弱等等像龙卷风一
- 马皇后的贤德
nannan408
马皇后不怕朱元璋的坏脾气,并敢理直气壮地吹耳边风。众所周知,朱元璋不喜欢女人干政,他认为“后妃虽母仪天下,然不可使干政事”,因为“宠之太过,则骄恣犯分,上下失序”,因此还特地命人纂述《女诫》,以示警诫。但马皇后是个例外。
有一次,马皇后问朱元璋道:“如今天下老百姓安居乐业了吗?”朱元璋不高兴地回答:“这不是你应该问的。”马皇后振振有词地回敬道:“陛下是天下之父,
- 选择某个属性值最大的那条记录(不仅仅包含指定属性,而是想要什么属性都可以)
Rainbow702
sqlgroup by最大值max最大的那条记录
好久好久不写SQL了,技能退化严重啊!!!
直入主题:
比如我有一张表,file_info,
它有两个属性(但实际不只,我这里只是作说明用):
file_code, file_version
同一个code可能对应多个version
现在,我想针对每一个code,取得它相关的记录中,version 值 最大的那条记录,
SQL如下:
select
*
- VBScript脚本语言
tntxia
VBScript
VBScript 是基于VB的脚本语言。主要用于Asp和Excel的编程。
VB家族语言简介
Visual Basic 6.0
源于BASIC语言。
由微软公司开发的包含协助开发环境的事
- java中枚举类型的使用
xiao1zhao2
javaenum枚举1.5新特性
枚举类型是j2se在1.5引入的新的类型,通过关键字enum来定义,常用来存储一些常量.
1.定义一个简单的枚举类型
public enum Sex {
MAN,
WOMAN
}
枚举类型本质是类,编译此段代码会生成.class文件.通过Sex.MAN来访问Sex中的成员,其返回值是Sex类型.
2.常用方法
静态的values()方