快速学习Android开发,知识点集锦
全面了解Android应用开发

全面了解Android应用开发一、Android应用开发的背景与概述Android应用开发是指使用Android操作系统进行应用程序的开发过程。
Android操作系统是一个开放源代码的移动设备平台,由谷歌公司推出,并得到了广泛应用。
随着智能手机的普及,Android应用开发已成为一项重要的技术。
Android应用开发包括开发移动应用程序和移动游戏,可为用户提供各种不同的功能和体验。
开发Android应用需要熟悉Java 语言、Android软件开发工具包(SDK)和Android应用程序接口(API)。
二、Android应用开发的基本原理1. Android应用架构Android应用开发使用基于组件的架构。
应用程序由多个组件组成,包括活动(Activity)、服务(Service)、内容提供器(Content Provider)和广播接收器(Broadcast Receiver)。
这些组件之间可以相互调用和交互,实现不同的功能。
2. Android开发工具包(SDK)Android开发工具包是开发Android应用程序的核心工具。
它包括了开发和调试程序所需的各种工具和库。
开发者可以使用SDK提供的工具,如Android Studio和Eclipse,来创建、编辑和测试应用程序代码。
3. Android应用程序接口(API)Android应用程序接口是一组类和方法的集合,用于构建Android应用程序。
API提供了开发者与Android操作系统进行交互的接口。
开发者可以利用API来访问设备的硬件功能、处理用户界面、访问网络和数据库等。
三、Android应用开发的流程1. 确定需求在开始开发Android应用之前,开发者需要明确应用的需求和目标。
这包括确定应用的功能、用户界面设计、用户体验等方面。
2. 设计界面Android应用的界面设计是关键的一步。
开发者需要根据应用的功能和用户需求,设计出直观、易用的用户界面。
android核心知识点笔记

android核心知识点笔记Android核心知识点笔记一、Android基础知识1. Android的发展历程- Android是由Andy Rubin创建的一个开放源代码的移动操作系统,2003年创建,2005年被Google收购,2008年首次推出。
- Android的发展经历了不断的版本迭代,包括Cupcake、Donut、Eclair、Froyo、Gingerbread、Honeycomb、Ice Cream Sandwich、Jelly Bean、KitKat、Lollipop、Marshmallow、Nougat、Oreo、Pie等。
- Android的版本迭代主要包括增加新功能、优化性能、改进用户界面等方面的改动。
2. Android应用的开发流程- Android应用的开发包括需求分析、设计界面、编写代码、调试、测试和发布等阶段。
- 需求分析阶段是确定应用的功能和界面设计的重要阶段,可以根据用户需求绘制原型图、进行用户调研等。
- 设计界面阶段包括绘制应用的界面布局、设计图片资源等。
- 编写代码阶段是根据需求和设计完成应用的逻辑和功能代码的编写,可以使用Java语言和Android SDK提供的API。
- 调试阶段是通过模拟器或真机进行应用的调试和测试,可以检查代码逻辑和界面的运行情况。
- 测试阶段是进行全面的功能测试、性能测试和兼容性测试,确保应用在各种设备上都能正常运行,并修复可能存在的Bug。
- 发布阶段是将应用打包成APK文件并上传到应用商店,供用户下载和安装使用。
3. Android应用的架构- Android应用的架构包括四个主要组件:Activity、Service、Broadcast Receiver和Content Provider。
- Activity是Android应用的界面显示和用户交互的主要组件。
- Service是一个可以在后台运行的组件,可以执行一些长时间运行的任务,如音乐播放、网络下载等。
android framework 核心知识点汇总手册

Android Framework核心知识点汇总手册是Android开发人员必备的参考资料,它详细介绍了Android操作系统的工作原理和核心组件。
手册首先概述了Android的系统架构,包括应用程序层、应用程序框架层、系统服务和系统库等。
核心知识点包括活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(ContentProvider)等组件的使用方法和最佳实践。
此外,手册还深入介绍了Android的消息传递机制、事件处理机制、资源管理系统以及安全性和权限管理等方面的知识。
通过学习这本手册,Android开发人员可以深入了解Android框架的工作原理,掌握各种组件的使用方法和最佳实践,提高开发效率和应用性能。
同时,手册还提供了丰富的示例和练习题,帮助读者更好地理解和应用所学知识。
总之,Android Framework核心知识点汇总手册是Android开发人员必备的参考资料,它有助于提高开发人员的技能水平和应用性能,为开发出高效、稳定的Android应用程序提供了有力支持。
第一行代码Android知识点总结

第一行代码知识点总结1、Android四层架构:Linux内核层(提供底层驱动)、系统运行库层(提供特性支持,一些核心库)、应用框架层(提供各种API)和应用层2、Android四大组件:活动(activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)3、Android应用特色开发:四大组件、丰富的系统控件、SQL数据库(轻量级,运算速度快的嵌入式关系型数据库)、强大的多媒体和地理位置定位(LBS)。
4、Android程序设计讲究逻辑和视图分离,通常在布局文件中编写在界面4.1Android的日志工具Log:Log.d()打印调试信息对应debug。
Log.v()打印琐碎、意义最小日志,对应verbose,Log.i()打印比较重要的数据对应info;Log.w()打印警告信息对应error;Log.e()打印错误信息对应error。
Log.d(类名,打印内容)4.2活动:主要用于和用户进行交互、基本用法4.3活动中的提醒方式Toast4.4、drawable存放图片,mipmap存放应用图标,values放字符串、样式,颜色等配置,layout放布局文件4.5、Android Studio是采用Gradle来构建项目5、Intent的使用:显式Intent和隐式Intent()6、活动的生命周期7、返回栈的定义8、Android是使用任务来管理活动的9、活动状态:运行、暂停、停止、销毁状态10、Activity类中的七个回调方法:onCreate()onStaart()、onResume()、onPause()、onStop()、onDestroy()和onRestart()11、活动的三种生存期:完整、可见、前台12、活动的四种启动模式:standard、singleTop、singleTask 和singleInstance13、常用控件:TextView、Button、EditText、ImageView、ProgressBar(进度条)、AlertDialog(对话框)、ProgressDialog (显示对话框时出现进度条)14、基本布局:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)百分比布局、AbsoluteLayout、TableLayout15、常用和最难用的控件ListView16、滚动控件:RecyclerView17、碎片的定义、使用方式、碎片的生命周期、状态和回调18、广播主要的两种类型:标准广播和有序广播;注册广播的方式:静态注册和动态注册;广播接收器继承BroadcastReceiver19、本地广播(LocalBroadcastManager)20、Android系统中三种数据持久化方式:文件储存、SharedPreference储存及数据库储存,还有保存在手机SD卡中21、SQliteOpenHelper帮助类:SQliteOpenHelper中有两个抽象方法onCreate()和onUpgrade();两种重要的实例方法getReadableDatabase()和getWritableDatabase()22、LitePal操作数据库23、跨程序共享数据:内容提供器24、ContentResolver的基本用法:ContentResolver类、ContentResolver中提供给了一系列的方法用于对数据进行CRUD操作包括增删改查操作;ContentResolver增删改查方法不接收表名参数,而是用Uri参数代替。
Android知识点汇总

目录Android知识点: (3)一:dom解析,以及写入数据到xml文件: (3)二:连接socket并获取返回值 (4)三:创建socket服务器 (4)四:获取本地设备信息;执行串口命令 (5)五:获取设备当前时间 (5)六:对于节省代码 (6)七:访问网络权限 (6)八:显示ProgressDialog (6)九:handle消息机制定义与对信息的处理 (6)十:显示AlertDialog,以及对其进行按键处理 (7)十一:判断网络是否连接 (8)十二:判断是否连接有线网络 (8)十三:判断是否能够ping通互联网:返回0则通,否则不通 (9)十四:显示进度圈,防止用户继续其线程start (9)十五:下载文件 (10)十六:解析json文件(android中使用,解析本地文件夹) (11)十七:解析服务器json文件,根据路径获取输入流并解析 (12)十八:获取所有已经安装的apk的信息 (14)十九:安装apk,分为静默安装与非静默安装,静默卸载 (15)二零:发送与接收广播 (17)二一:java中解析JSON文件 (18)二二:获取文件列表 (19)二三:DownloadManager (21)附件一:android-apkinfo.json (23)附件二:java_apkinfo_json (24)二四:复制assets中资源文件到sdcard或data/files目录下 (25)二五:解析与重写xml文件 (27)二六:设置Viewpager的Adapter适配器 (29)二七:设置listView的Adapter适配器 (30)二八:设置按键监听器 (33)二九:对于data中图片信息的处理与使用 (34)三十:OnpageChangeListener页面切换监听器 (34)三一:Activity之间数据的传递 (35)三二:通过代码添加button (36)三三:文件的输入输出 (37)三四:关于文件路径 (38)三五:对sd卡的读写权限设置 (38)三六:file.getCanonicalPath() (39)三七:命令行运行java文件 (39)三八:activity无头标题 (40)三九:activity全屏 (40)四十:启动aitivity/service参数设置 (40)四一:获取已经安装的apk信息 (40)四二:Viewpager (41)四三:LayoutInflater (42)四四:mkdir与mkdirs (42)四五:创建对象Drawable与Bitmap (43)四六:获取屏幕分辨率 (43)四七:消除EditText输入法弹框 (43)四八:android:ellipsize的使用 (44)四九:Edittext属性设置 (44)五十:设置系统菜单语言 (45)五一:android原生设置系统休眠时间 (45)五二:判定ImageView是否可见 (45)五三:关于fragment的使用 (46)五四:打印全部的cursor信息 (47)五五:拆分String,根据特殊符号 (48)五六:获取与设置环境变量 (48)五七:解析与获取文本信息 (48)五八:实现本地升级功能 (49)五九:获取挂载的存储设备的路径 (49)六十:java反射机制,根据函数名调用函数 (50)六一:简单添加Menu选项 (51)六二:获取当前显示的应用包名 (52)六三:kill某一执行进程 (52)常用C函数含义解析: (54)1、memset (54)2、snprintf (54)Android中遇到的小常识 (55)1,查看进程相关信息 (55)2,查看系统内存属性值 (55)3,修改文件权限以及分组 (55)Android知识点:一:dom解析,以及写入数据到xml文件:获取输入流:File file = new File(String filepath);InputStream instream = new FileInputStream(file);private static void serialize(int data) throws Exception { logs("rewrite xmlFile");// 由android.util.Xml创建一个XmlSerializer实例XmlSerializer serializer = Xml.newSerializer();StringWriter writer = new StringWriter();// 设置输出方向为writerserializer.setOutput(writer);serializer.startDocument("UTF-8", true);serializer.startTag("", "datas");serializer.startTag("", "data");serializer.text("" + data);serializer.endTag("", "data");serializer.endTag("", "datas");serializer.endDocument();File file = new File(FILE_PATH + FILE_NAME);if (file.exists()) {file.delete();file.createNewFile();}FileOutputStream io = new FileOutputStream(file);String xmlString = writer.toString();io.write(xmlString.getBytes("UTF-8"));}//解析输入流,获取输入流中信息private static int parseXmlNative(InputStream is) throws Exception {logs("parseXML in native");String data2 = null; // 获取最终使用期限// 得到Dom解析对象工厂DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();// 通过工厂创建Dom解析对象实例DocumentBuilder db = factory.newDocumentBuilder();// 将xml文件的输入流交给Dom解析对象进行解析,并将Dom树返回Document document = db.parse(is);// 通过Dom树接收到根元素Element rootElement = document.getDocumentElement();NodeList nodeList = rootElement.getElementsByTagName("data");Log.i(TAG, "length = " + nodeList.getLength());data2 = nodeList.item(0).getFirstChild().getNodeValue();return Integer.parseInt(data2);}二:连接socket并获取返回值try {String sRead;//参数为ip与端口号Socket socket = new Socket(SERVER_IP, PORT);BufferedReader br = new BufferedReader(newInputStreamReader(socket.getInputStream()));sRead = br.readLine();logs(sRead);socket.close();logs("socket is closed");serialize(Integer.parseInt(sRead));logs("serialize in file, data = " +Integer.parseInt(sRead));br.close();} catch (Exception e) {logs("Exception");}三:创建socket服务器public static void main(String[] args) {try {ServerSocket ss = new ServerSocket(30000);while (true) {Socket s = ss.accept();PrintStream ps = new PrintStream(s.getOutputStream());ps.println("This is String in SocketMain!");ps.close();s.close();}} catch (IOException e) {e.printStackTrace();}}当socket获取连接请求时,返回值为:This is String in SocketMain!四:获取本地设备信息;执行串口命令获取本地mac地址:private static String getEthMacAddress() {try {Process process = Runtime.getRuntime().exec("busybox ifconfig eth0");BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));String inline = br.readLine();String[] s = inline.split(" ");String ethMac = s[s.length - 1];br.close();return ethMac;} catch (IOException e) {e.printStackTrace();}return null;}获取设备序列号:String serial = Build.SERIAL;获取设备生产厂商String manufacturer = Build.MANUFACTURER;五:获取设备当前时间SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");Date curData = new Date(System.currentTimeMillis());String string_curtime = format.format(curData);int int_curime = Integer.parseInt(string_curtime);信息格式为yyyyMMdd(HHmmss)获取毫秒信息:System.currentTimeMillis();获取时间为自1970年1月1日0时0分起到当前的毫秒数之差。
android知识点总结6

android知识点总结6从技术角度来看,Android的知识点可以分为三个主要部分:应用程序开发、系统架构和性能优化。
在应用程序开发方面,我们需要了解Android的开发环境和工具,如Android Studio、Java编程语言、XML布局等;系统架构方面,我们需要了解Android的四大组件(Activity、Service、Content Provider、Broadcast Receiver)以及它们之间的通信机制;性能优化方面,我们需要了解Android的内存管理、多线程编程、网络通信和电池管理等知识点。
首先,让我们从应用程序开发方面来谈谈。
在Android应用程序开发中,Android Studio是开发者最常用的集成开发环境(IDE)。
它提供了丰富的工具和功能,如代码自动补全、虚拟设备模拟器、调试器等,大大提高了开发效率。
与此同时,Android开发也离不开Java编程语言,因为Android应用程序是用Java来编写的。
所以,开发者需要熟悉Java语言的基本语法和面向对象编程思想。
此外,XML布局也是Android应用开发中必不可少的一部分,它用来定义UI界面的样式和布局。
其次,我们来看看Android系统架构。
Android的四大组件(Activity、Service、Content Provider、Broadcast Receiver)是Android应用程序的基本组成部分,了解它们的作用和使用方法是Android应用开发的基础。
Activity是用户界面的呈现部分,每个屏幕上的UI都是由一个Activity来承载的;Service是后台运行的组件,用于处理长时间运行的操作,如音乐播放或网络下载;Content Provider用于数据共享,它可以让一个应用程序访问其他应用程序的数据;Broadcast Receiver用于在不同应用程序之间传递消息。
除了四大组件,Android系统还有很多其他的重要组件,如Intent、Fragment、View等,它们都是Android应用程序开发中的重要知识点。
Android最佳学习路线图
Android 游戏与应用开发最佳学习路线图为了帮助大家更好的学习Android ,并快速入门特此我们为大家制定了以下学习路线图,希望能够帮助大家。
一、 路线图概括:二、具体需要掌握知识点:Java基础Android游戏与应用开发四、 在此我们为大家推荐:由【尚观4G 只能操作系统研究室】郭宏志老师编写的 《Android 应用开发详解》这本书以及我们的免费教学视频网站,本书提供大量的实战项目及详细解决方案,相信对初学者还是相关开发人员都会有比较大的帮助。
五、 免费视频教程及下载地址Java 入门与强化1/playlist/4003320-1320045357-1.html#33879945 Java 入门与强化2/playlist/4003320-1320045357-1.html#33880275 Java 入门与强化3/playlist/4003320-1320045357-1.html#33880423 Java入门与强化4/playlist/4003320-1320045357-1.html#33887542 Android环境搭建1/playlist/4003320-1320045357-1.html#34055420 Androiud环境搭建2/playlist/4003320-1320045357-1.html#34265145 Android环境搭建3/playlist/4003320-1320045357-1.html#34266369 Android游戏及应用开发之1/playlist/4003320-1320045357-1.html#33844107 Android游戏及应用开发之2/playlist/4003320-1320045357-1.html#33845175 Android游戏及应用开发之3/playlist/4003320-1320045357-1.html#33851696 Android游戏及应用开发之4/playlist/4003320-1320045357-1.html#33852758 Android游戏及应用开发之5/playlist/4003320-1320045357-1.html#33848363 Android游戏及应用开发之6/playlist/4003320-1320045357-1.html#33855468 Android游戏及应用开发之7/playlist/4003320-1320045357-1.html#33857388下载地址:Android 最佳入门视频/file/t02a973ad8尚观-4G手机游戏及应用开发1/file/t02c1e4b06尚观-4G手机游戏及应用开发2/file/t08499e1c7尚观-4G手机游戏及应用开发免费基础课之iPhone1/file/t02e16605f尚观-4G手机游戏及应用开发免费基础课之iPhone2/file/t03f013897尚观-4G手机游戏及应用开发免费基础课之iPhone2/file/t0f3211309尚观-4G手机游戏及应用开发免费基础课之Android播放器/file/t0ca4e4583尚观-4G手机游戏及应用开发免费基础课之Android游戏俄罗斯方块/file/t0d7c72157尚观-4G手机游戏及应用开发免费基础课之Android博客登陆客户端/file/t094baf7e0Android 学习路线图收藏1.Java基础很多朋友一上手就开始学习Android,似乎太着急了一些。
移动端开发知识点
移动端开发知识点移动端开发是近年来迅速发展的技术领域之一。
随着智能手机的普及,越来越多的用户倾向于在移动设备上使用各种应用程序和服务。
因此,了解移动端开发的知识点对于开发人员来说至关重要。
本文将介绍一些移动端开发的重要知识点。
1.响应式设计:在移动端开发中,响应式设计是一项关键的技术。
通过使用响应式设计,开发人员可以根据设备的屏幕大小和分辨率自动调整应用程序的布局和样式。
这样,无论用户使用的是智能手机、平板电脑或其他移动设备,应用程序都可以提供良好的用户体验。
2.移动端布局:与响应式设计紧密相关的是移动端布局。
移动设备的屏幕空间有限,因此开发人员需要考虑如何在有限的空间内展示内容。
一种常见的方法是使用流式布局,以适应不同屏幕尺寸。
此外,还可以使用网格布局和媒体查询等技术来实现不同设备上的灵活布局。
3.移动端开发框架:为了提高开发效率,许多移动端开发框架应运而生。
这些框架提供了许多预定义的组件和样式,可以快速构建移动应用程序。
例如,Ionic框架是一个流行的移动端开发框架,它基于HTML、CSS和JavaScript,并提供了丰富的UI组件和工具。
4.原生应用开发:除了使用框架进行开发外,开发人员还可以使用原生开发技术来构建移动应用程序。
原生开发适用于对性能和用户体验要求较高的应用程序。
对于iOS平台,开发人员可以使用Objective-C或Swift语言进行开发;而对于Android平台,可以使用Java或Kotlin语言进行开发。
5.移动端网络请求:移动应用程序通常需要与后端服务器进行数据交互。
在移动端开发中,网络请求是一项重要的技术。
开发人员可以使用Ajax、Fetch或第三方库来处理网络请求,并获取所需的数据。
此外,还需要处理网络请求的错误和超时等异常情况。
6.移动端数据存储:在移动应用程序中,数据存储是一项关键的技术。
开发人员可以使用本地存储、数据库或云存储等方式来保存数据。
例如,可以使用SQLite数据库在本地存储数据,或使用云存储服务如Firebase来实现数据同步和备份。
Android知识点
第一章 P1.7 1.(简答题)简述各种软件开发系统并分析他们的优缺点 1)ios 优点:封闭性,安全,电量消耗低 缺点:不能跨平台移植,不够开放,收费 2)安卓 优点:免费,开源,开放性好 缺点:碎片化严重,不安全 3)Windows Mobile 优点:界面与Windows类似,开发平台统一 缺点:收费,开放性不强,用户无法自行定制 P1.15 1.移动应用程序开发环境包括 1)集成开发环境(IDE) 2)软件开发工具包(SDK) P1.16 1.安卓开发环境:Eclipse,Android SDK 2.苹果开发环境:Xcode 第二章
P2.3 1.安卓系统包括 1)操作系统 2)中间件 这是一组库和API,它们充当操作系统和应用程序之间的接口 3)主要应用程序 P2.4 SQLite:Android提供了一个强大,快速,轻量的关系数据库引擎,它叫做SQLite. DVM:Android应用程序多数都是用Java语言编写然后编译为字节码,Android字节码由DVM在运行时解释 P2.9 1.安卓平台具有四层架构 1)应用程序2)应用程序框架3)库和Android运行时4)Linux内核 2)和3)组成中间件 P2.12 1.WebKit:提供开源的Web浏览器引擎 P2.14 1.Android是基于Linux的操作系统。因此,安装的每个应用程序都分配了唯一的Linux 用户ID(UID).只有Android操作系统使用此Linux UID,应用程序本身并不认识它 2.Permission: Android系统为应用程序中的所有文件设置权限,这样只有分配给该应用程序的Linux UID能访问应用程序文件 P2.16 1.(简答题)安卓四大组件 1)活动2)服务3)广播接收器4)内容提供者 2.AVD:安卓虚拟设备,帮助开发者在没有真实的移动设备时运行和测试应用程序 P2.24 1.Android项目目录结构 1)/src:项目中使用的Java源文件 2)/res:包含所有应用程序资源 layout包含在其中 除了上述目录外,每个Android应用程序的根目录中还应有一个AndroidManifest.xml 第三章
android知识点全面总结
android知识点全面总结【篇一:android知识点全面总结】说明:本篇博客只是一个知识整理,因为网上对于android的知识介绍足够多,因此我不再写相关文章(主要是因为我写的不如人家好),所以所有文章均来自网络,不贴原文章,只提供连接,因此本文旨在减少你对相关知识的搜索过程,方便查找相关知识。
activity【篇二:android知识点全面总结】做android开发大家都知道知识点比较琐碎和庞大,但是对于程序员来说知道的越多,对以后的就业和薪资还是有好处的,因为面试的时候面试官指不定会问你android哪方面的知识,如果答得好呢,薪资这块还是自己有掌控力的喽,这些知识不必大家有多么精通,了解以及理解即可,但是对于高级程序员来说,这些必须掌握,别问我为什么,任性!!android 所有知识点总结:1.掌握android编程的基本概念与要点,android sdk及其开发环境搭建、android项目结构分析、2.android 应用设计模式、文件系统、4.、android四大核心组件(activity、 broadcastreceiver、service和contentprovider)、5 监听contentprovider数据变化、urimatcher、contenturis的使用、对嵌入式sqlite关系数据库进行增、删、改、查和事务管理、6 采用listview实现数据列表显示、7 应用打包与安装。
8网络通信、多线程断点续传与下载、9activity的管理、bundle的使用、为intent附加数据、activity生命周期、activity的启动模式、10 建立能与访问者进行相互通信的本地服务、服务的生命周期、使用aidl和远程服务实现进程通信11 进程间的数据传递、音频采集与播放、使用soundpool播放音效、视频播放、操纵摄像头、视频采集、方向、加速度(重力)、光线、磁场、距离(临近性)、温度等传感器的使用、12 gps定位服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【威哥说】很多人在工作中不断的遇到瓶颈,想研究新的技术,却发现自己的基础不扎实,无法深入理解某一项技能的原理问题。这就需要大家能在工作之余稳固一下自己的基础知识了。有了比较完善的基础积淀才能事半功倍。 【正文】上篇介绍了Android和ios该如何选择的文章后,收到了很多同学的回复,统
计下来选择Android的要多于ios。要学Android开发,必须学习java,下面这些知识点掌握了,Android就会学习的更快。 1. 基本数据类型 整形: byte 1 个字节 short 2 个字节 int 4个字节 long 8个字节 字符: char 2个字节 浮点数: float 4个字节 double 8个字节 布尔: boolean 1个字节
2.java 7 新增二进制整数 以0b或者0B开头
3.java中字符时16位的Unicode编码方式,格式是'\uXXXX',其中xxxx代表一个十六进制整数
4.java中规定了正无穷大、负无穷大和零 正无穷大= 一个正数除以0 负无穷大= 一个负数除以零 0.0 除以0.0 或者 对一个负数开方 得到一个非数 5. 在java中布尔类型只能是true和false 6. 在java中没有多维数组 看似像C语言中的多维数组不是真正的数组,比如 a[3][4] , a[0] a[1] a[2] 是真实存在的,装的是地址,和c语言中动态分配为的数组一样 int [][] b = new int[3][4]
7. Java中带包的编译方法 javac -d . Hello.java 会在当前目录下生成目录树 运行 java 包名字.类名字
8. Java多态中的对象的filed 不具有多态性,如 父类 对象 = new 子类(), 对象.field 是调用的父类的,即使子类中覆盖了该字段。
9. instanceof 运算符 格式: 引用变量名 instanceof 类名(或者接口) 他用于判断前面的对象是否是后面对象的类,子类、实现类的实例,是返回true,否者返回false
10. Java 中基本数据类型和对应封装类之间的转化 int a = 1; Integer A = new Integer(a); a = A.intValue(); 其他的类型也是这样的。
11.单例(singleton)类 例子 代码如下:
class Singleton { private static Singleton instance; private Singleton(){} public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } return instance; } public static void main(String[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1 == s2); } }
12.final修饰的成员变量初始化问题 类Field: 必须在静态初始块中或声明该FIeld时指定初始值 实例Field:必须在非静态初始块中或声明该FIeld时指定初始值或构造器中声明
13.Final 变量必须显式初始化,系统不会对final变量进行隐式初始化 14.java会使用常量池来管理曾经用过的字符串直接常量,例如:String a = "java"; ,系统把常量字符串“java”存在常量池,当再次执行 String b = "java"; a == b 是true
15.final 方法不可以重写,final类不能被继承 如果用private 方法 和 final private 是一样的 若果是用final修饰的方法在子类中出现,那是子类新定义的,与父类没有关系 16.不可变类:创建后该类的Field是不可改变的。java提供了8个基本变量的包装类和string都是不可改变类。
17.缓存实例的不可改变类 代码如下:
class CacheImmutale { private static int MAX_SIZE = 10; private static CacheImmutale[] cache = new CacheImmutale[MAX_SIZE]; private static int pos = 0; private final String name; private CacheImmutale(String name) { this. name = name; } public String getName() { return name; } public static CacheImmutale valueOf(String name) { for(int i = 0; i < MAX_SIZE; ++i) { if(cache[i] != null && cache[i].getName().equals(name)) return cache[i]; } if(pos == MAX_SIZE) { cache[0] = new CacheImmutale(name); pos = 1; } else { cache[pos++] = new CacheImmutale(name); } return cache[pos -1]; } public boolean equals(Object obj) { if(this == obj) return true; if(obj != null && obj.getClass() == CacheImmutale.class) { CacheImmutale ci = (CacheImmutale)obj; return name.equals(ci.getName()); } return false; } public int hashCode() { return name.hashCode(); } } public class CacheImmuteTest { public static void main(String[] args) { CacheImmutale c1 = CacheImmutale.valueOf("Hello"); CacheImmutale c2 = CacheImmutale.valueOf("Hello"); System.out.println(c1 == c2); } }
用缓存实例要看某个对象的使用频率,若重复使用那就利大于弊,若不经常使用那弊就大于利 还有java提供的java.lang.Integer 创建数值在-128-127之间的数采用缓存机制的 Integer in2 = Integer.valueOf(6); Integer in3= Integer.valueOf(6); in2 == in3 is true; 18. static 和 abstract 不能同时修饰一个方法,没有类抽象方法 19.一个类可以又一个父类,实现多个接口,接口中Filed是public 、static、final的,方法是public abstract的
20.非静态内部类的方法访问某个变量,搜索顺序为:先内部类中方法内-> 内部类 -> 外部类中如果都找不到则出现编译错误 代码如下:
import java.util.*; public class DiscernVariable { private String prop = "外部类的实例变量"; private class InClass { private String prop = "内部类的实例变量"; public void info() { String prop = "局部变量"; System.out.println("外部类的field值:" + DiscernVariable.this.prop); System.out.println("内部类的field值:" + this.prop); System.out.println("局部变量的值:" + prop); } } public void test() { InClass in = new InClass(); in.info(); } public static void main(String[] args) { new DiscernVariable().test();