马士兵java第五章_数组_个人笔记
- 格式:pdf
- 大小:592.93 KB
- 文档页数:12
Java学习笔记学习Java首先要配置环境变量,在电脑属性的高级中,点击环境变量,classpath 中有一英文句号“.”后跟一个分号,表示当前路径的意思。
由第一个程序Helloworld为例说明Java的基本运行代码:public class HelloWorld {public static void main(String args[]) {System.out.println("Hello, World!");}}在Java中只能允许有一个公共类,此区别于C++。
还有Java的写作风格与C和C++有很大区别。
下面细谈Java的基本语法,与其他语言类似,Java每一条语句都以“;”结束。
1.short byte char 之间不会自动转换,他们运算时首先转换为int 然后进行运算;boolean不会进行转换;如:byte b1;byte b2;byte b3=byte(b1+b2);b1+b2运算后是int 类型,可以byte a=1;//可以把数值直接赋值不超范围,(-128~127)float f1=1.234f;long l1=300000000L;f和L一定加上;2.System.out.println( );//输出后换行System.out.print( );//输出后不换行&&和&的区别:表达式1 && 表达式2 只要表达式1 错误,后不再计算,表达式1 & 表达式2 就算表达式1错误表达式2也会计算。
+既可以作为加号,也可以作为连接符,即左右都是字符串,当有一个是字符串,系统默认把另一个转化为字符串再处理。
例如:System.out.println(“c=”+ c);打印时,无论任何类型,都先转换为字符型,再进行打印。
3.聚合关系,就是包含关系,实现关系就像虚基类,在派生类中实现。
4.定义成员变量可以初始化,若不则自动初始化(可以直接在成员变量的定义时初始化);但局部变量一定要自己初始化,boolean类型默认为false,其他默认为0;在main中调用函数时,只要定义了构造函数并且初始化,就一定要把实参的值写到函数里,不能少参数。
第一部分:J2se学习视频内容包括:尚学堂科技_马士兵_JA V A视频教程_JDK5.0_下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第01章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第02章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第03章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第04章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第05章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第06章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第07章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第08章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第09章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_专题_正则表达式反射avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第二部分:j2se练习项目视频内容包括:尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_JA V A_坦克大战网络版视频教程尚学堂科技_马士兵_snake_贪吃蛇内部视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第三部分数据库视频Oracle视频内容包括:01——53讲avi格式◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第四部分:JDBC和MySQL视频,内容包括:1_lomboz_eclipse_jdbc2_mysql_avi3_连接池的设计思路.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第五部分:HTML & CSS & JA V ASCRIPT 视频:Html & CSS 视频内容简介:01_html简单介绍和meta标签.avi02_a_路径问题等等.avi03_学习方法_其他常用标签.avi04_1_note.avi04_表格和表单_1.avi05_表格和表单_2.avi06_Frame.avi07_Dreamweaver.avi08_CSS_1.avi09_CSS_2_选择方式.avi10_CSS_3.avi11_CSS_4.aviJavaScript 视频简介:01_JS初步及调试.avi02_JS基本语法.avi03_函数_事件处理_1.avi04_事件处理_2.avi05_内置对象_DOM_BOM.avi06_趣味.avi07_实用.avi08_表单验证.avi09_表单验证_new.avi10_后台框架.avi11_后台框架_2.avi12_TREE.avi◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第六部分:Servlet & JSP视频——内容包括:1 tomcat的安装使用,配置2 servlet & jsp 视频1——30节jsp的练习项目内容包括:3 简单bbs项目3 2007美化BBS项目4 网上商城项目视频4 网上商城项目视频讲解视频◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆第七部分:J2EE学习视频包括:DRP项目框架视频学习:Struts视频Hibernate视频Spring视频提高部分:uml统一建模语言视频SSH项目视频:oa办公自动化系统视频crm项目视频银行系统视频ejb3.0视频J2ME_3G简介资料面试材料:面试题大汇总+笔记+技巧尚学堂视频学习顺序(必看)尚学堂视频学习顺序2009-04-22 21:19尚学堂科技_马士兵_JDK5.0下载-安装-配置尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第1章_JA V A简介_源代码_及重要说明尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第2章_基础语法尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第2章_递归补充尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第3章_面向对象尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第4章_异常处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第5章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第5章_数组尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第6章_常用类尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第7章_容器尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第8章_IO尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第9章_线程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第10章_网络尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_第11章_GUI尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse尚学堂科技_马士兵_坦克大战视频教程_java_eclipse尚学堂科技_马士兵_坦克大战图片版尚学堂科技_马士兵_坦克大战网络版视频教程尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_日期处理尚学堂科技_马士兵_JA V A视频教程_J2SE_5.0_专题_正则表达式尚学堂科技_张志宇_SERVLET_JSP_视频教程_第一版尚学堂科技_马士兵_JDBC_MYSQL_BBS项目课堂实录视频教程尚学堂科技_马士兵_BBS_项目补充_MySQL简明视频教程尚学堂科技_马士兵_JA V A_系列视频教程_BBS_2007尚学堂科技_马士兵_JA V A_网上商城项目视频讲解尚学堂科技_马士兵_轻松愉快LINUX视频教程尚学堂科技_马士兵_设计模式_01_Observer尚学堂科技_王勇_JA V A视频教程_XML01_XML尚学堂科技_王勇_JA V A视频教程_XML02_XSL尚学堂科技_王勇_JA V A视频教程_XML03_DTD_Schema尚学堂科技_王勇_JA V A视频教程_XML04_JDOM对XML文件的读取尚学堂科技_王勇_JA V A视频教程_Struts01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Struts02_多层架构及MVC尚学堂科技_王勇_JA V A视频教程_Struts03_第一个项目尚学堂科技_王勇_JA V A视频教程_Struts04_小结及作业尚学堂科技_王勇_JA V A视频教程_Struts05_Struts标签库尚学堂科技_王勇_JA V A视频教程_Struts06_JSTL_EL表达式尚学堂科技_王勇_JA V A视频教程_Struts07_JSTL_核心库尚学堂科技_王勇_JA V A视频教程_Struts08_JSTL_格式化库及函数库尚学堂科技_王勇_JA V A视频教程_Struts09_Struts标签库实现用户维护作业尚学堂科技_王勇_JA V A视频教程_Struts10_ActionForm尚学堂科技_王勇_JA V A视频教程_Struts11_ActionForward_ActionMapping_Action尚学堂科技_王勇_JA V A视频教程_Struts12_Java国际化尚学堂科技_王勇_JA V A视频教程_Struts13_Struts及JSTL国际化尚学堂科技_王勇_JA V A视频教程_Struts14_动态验证框架尚学堂科技_王勇_JA V A视频教程_Struts15_声明式异常及个性化异常尚学堂科技_王勇_JA V A视频教程_Struts16_ForwardAction_DispatchAction_Struts模式匹配尚学堂科技_王勇_JA V A视频教程_Struts17_JSTL实现物料维护作业尚学堂科技_王勇_JA V A视频教程_Struts18_Struts回顾尚学堂科技_王勇_JA V A视频教程_Hibernate01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Hibernate02_主要接口简介及示例尚学堂科技_王勇_JA V A视频教程_Hibernate03_持久对象的生命周期及Query接口初步尚学堂科技_王勇_JA V A视频教程_Hibernate04_常用映射标签及属性尚学堂科技_王勇_JA V A视频教程_Hibernate05_多对一及一对一关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate06_SessionFlush简介尚学堂科技_王勇_JA V A视频教程_Hibernate07_一对多关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate08_多对多关联映射尚学堂科技_王勇_JA V A视频教程_Hibernate09_Lazy策略尚学堂科技_王勇_JA V A视频教程_Hibernate10_继承映射尚学堂科技_王勇_JA V A视频教程_Hibernate11_其他映射尚学堂科技_王勇_JA V A视频教程_Hibernate12_悲观锁与乐观锁尚学堂科技_王勇_JA V A视频教程_Hibernate13_树形结构作业及HQL尚学堂科技_王勇_JA V A视频教程_Hibernate14_一级缓存_二级缓存_查询缓存尚学堂科技_王勇_JA V A视频教程_Hibernate15_抓取策略尚学堂科技_王勇_JA V A视频教程_Hibernate16_物料管理作业及Hibernate回顾尚学堂科技_王勇_JA V A视频教程_Spring01_源代码及重要说明尚学堂科技_王勇_JA V A视频教程_Spring02_Spring简介尚学堂科技_王勇_JA V A视频教程_Spring03_IoC容器尚学堂科技_王勇_JA V A视频教程_Spring04_属性注入尚学堂科技_王勇_JA V A视频教程_Spring05_Bean的作用域及自动装配尚学堂科技_王勇_JA V A视频教程_Spring06_代理模式及AOP术语尚学堂科技_王勇_JA V A视频教程_Spring07_Spring_AOP示例尚学堂科技_王勇_JA V A视频教程_Spring08_事务尚学堂科技_王勇_JA V A视频教程_Spring09_SSH集成尚学堂科技_王勇_JA V A视频教程_Spring10_作业及Spring回顾。
知识点预览数组的概念数组的语法数组排序数组扩充二维数组与高维数组数组的概念1. 什么是数组2. 数组的概念:一次性的定义多个变量数组的语法1. 数组的声明a) int [] a;------->项目开发推荐使用b) int a[];2. 数组的空间分配a) a = new int[5];b) 先声明、后分配int [] a;a = new int[5];c) 声明、分配同时进行int [] a = new int[5];3. 数组在内存中的表示a) int [] a = new int[5];空间连续、挨着,密不可分4. 数组的特点a) 数组所创建的内存空间只能存储相同数据类型的数据b) 数组所分配的内存空间是连续的c) 数组所分配的内存空间是不可扩充的5. 数组存储数据的值a) 数组元素的默认值(各种各样的0)说明:’\u0000’:Unicode编码局部变量:先赋值后使用数组元素:未初始化,有默认值b) 数组的显式赋值6. 数组的遍历a) 按照一定的顺序依次操作数组的每一个元素b) for循环(引入下标)7. 数组的length属性a) arrayVar.length:用于获得数组长度8. 封装遍历函数a) 经常使用的代码------>进行封装9. 数组创建的其他方式a) int [] a = {1,2,3};b) int [] b = new int[]{11,22,33};c) 说明:以上两种方式不可以拆开写int [] b = new int[3]{11,22,33}; 错误d) 补充:C#:int [] b = new int[3]{11,22,33}; 正确10. 数组常见错误a) 开发:语法、思路、设计思想、积累常见错误b) ng.ArrayIndexOutOfBoundsException数组越界异常如:int [] a = new int[3]; System.out.println(a[4]);11. 思考题byte b[] = {1,2,3};byte a [] = b;a[0] = 10;System.out.println(b[0]);先思考……答案:10数组排序1. java.util.Arrays.sort(array);数组扩充1. 思路int [] a = new int[3];a) 创建一个新的数组int [] b = new int[6];b) 把老数组的数据复制到新数组a---->b(复制)c) 让老数组指向新数组的地址 a = b;2. 第一种方式int [] a = new int[3];int [] b = new int[a.length * 2];for(int i = 0; i < a.length;i ++){b[i] = a[i];}a = b;3. 第二种方式System.arraycopy()int [] a = new int[3];int [] b = new int[a.length * 2];System.arraycopy(a,0,b,0,a.length);a = b;4. 第三种方式java.util.Arrays.copyOf前提:JDK 1.6开始提供这个方法int [] a = new int[3];int [] b = java.util.Arrays.copyOf(a,a.length);a = b;注意:数组扩充不能在原有基础上二维数组与高维数组1. 什么是二维数组int[][] a = new int [2][3];2:低维度行3:高维度列2. 二维数组的使用a) 二维数组的赋值i. a[0][0] = 10;……a[1][2] = 22; ii. int [][] b = {{11,22},{21,22}};b) 二维数组的本质一维数组的一维数组(Java里的二维数组不是真正意义上的二维数组)int [][] a = newint [2][3];c) 二维数组的长度i. a.length ------>外层数组(行)ii. a[0] .length ------>内层数组(列)d) 二维数组的遍历int i = 0; i< a.length;i++int j = 0; j < a[i].length;j++a[i][j];e) 不规则的二维数组int [][] a = newint [2][];a[0] = new int[3];a[1] = newint[2];3. 高维数组三维数组: 一维数组的一维数组的一维数组四维数组: 一维数组的一维数组的一维数组的一维数组……注意复习以前知识:接下来学习面向对象学习面向对象,不仅要学习面向对象的语法,更要注重面向对象的思想和解决问题的方式。
马士兵hibernate学习笔记(文字整理版)课程容 (5)1 HelloWorld (5)2 Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping (5)3 常见的0/R框架(了解) (5)4 hibernate基础配置(重点) (5)5 ID生成策略(重点 AUTO) (5)6 Hibernate核心开发接口介绍(重点) (5)7 对象的三种状态(了解) (5)8 关系映射(重点) (5)9 Hibernate査询(HQL) (5)10 在Struts基础上继续完善BBS200 (5)11 性能优化(重点) (5)12 补充话题 (5)风格 (5)1 先脉络,后细节 (5)2 先操作,后原理 (5)3 重Annotation,轻xml配置文件 (5)资源 (5)1 . (5)2 hibernate zh_CN文档 (5)3 hibernate annotation references (5)环境准备 (5)1 下载hibernate-distribution-3.3.2.GA-dist (5)2 下载hibernate-annotations-3[1].4.0.GA (5)3 注意阅读hibernate compatibility matrix(hibernate download) (5)4 下载slf4jl.5.8 (6)Hibernate HelloWorld (6)1 建立新java 项目,名为hibernate_0100_HelloWorld (6)2 学习建User-library-hibernate,并加入相应的jar包 (6)3 引入mysql的JDBC驱动包 (6)4 在mysql中建立对应的数据库以及表 (6)5 建立hibernate 配置文件hibernate.cfg.xml (6)6 建立Student 类 (6)7 建立Student 映射文件 Student.hbm.xml (6)8 将映射文件加入到hibernate.cfg.xml中 (6)9 写测试类Main,在Main中对Student对象进行直接的存储测试 (6)10 FAQ: (6)11 Note: (6)12 建立能力 (7)建立 Annotation 版本的 HelloWorld (7)1 创建teacher 表,create table teacher (id int primary key, name varhcar(20), title varchar(lO)); (7)2 创建Teacher 类 (7)3 在hibernate lib 中加入annotation的jar包 (7)4 参考Annotaion文档建立对应的注解 (7)5 在hibernate.cfg.xml中建立映射<mapping class:.../〉 . (7)6 参考文裆进行测试(注意文裆中缺少configure()的小bug) (7)7 FAQ: 不给提示 (7)What is and Why 0/R Mapping (7)1 JDBC操作数据库很繁琐 (7)2 Sql语句编写并不是面向对象的 (7)3 可以在对象和关系表之间建立关联来简化编程 (7)4 0/R Mapping 简化编程 (7)5 0/R Mapping跨越数据库平台 (7)6 Hibernate_0200_OR_Mapping_Simulation (7)0/R Mapping Frameworks (7)1 hibernate (7)2 toplink (8)3 jdo (8)4 JPA (8)Hibernate基础配置 (8)1 对应项目:Hibernate_0300_BasicConfiguration (8)2 介绍MSQL的图形化客户端 (8)3 hibernate.cfg.xml: hbni2ddl.auto (8)4 搭建日志环境并配置显示DDL语句 (8)5 搭建jUnit环境 (8)6 hibernate.cfg.xml:show_sql (8)7 hibernate.cfg.xml:format_sql (8)8 表名和类名不同,对表名进行配置 (8)9 字段名和属性相同 (8)10 字段名和属性名不同 (8)11 不需要psersistence的字段(不用列) (8)12 映射日期与时间类型,指定时间精度 (8)13 映射枚举类型( 比较少用) (9)14 字段映射的位置(field或者get方法) (9)15 Lob (9)16 课外:CLOBBLOB类型的数据存取 (9)17 课外:Hibernate自定义数据类型 (9)18 hibernate 类型 (9)ID生成策略 (9)1 对应项目:hibernate_0400_ID (9)2 注意: (9)3 xml生成id (9)4 注解方式:GeneratedValue (9)5 FAQ; (10)6 联合主键 (10)核心幵发接口介绍 (12)1 hibernate_0500_CoreAPI (12)2 Hibernate API文档需要单独下载 (12)3 Configuration (12)4 SessoinFactor (12)5 Session (12)6 SchemaExport (自动建表) (13)7 Query 接口 (13)8 Note: (13)三种对象状态 (14)1 上一个 project (14)2 三种状态的区分关键在于 (14)3 三种状态: (14)4 对这三种状态需要关注的问题是在该状态下如果进行数据库的操作会发生什么结果,比如改变属性的 (14)关系映射(重要) (15)对象之间的关系 (15)1 这里的关系映射指的是对象之间的关系,并不是指数据库的关系,本章解决的问题是当对象之间处于 (15)2 简化问题: (15)3 —对一 (15)4 —对多 (15)5 组件映射 (15)一对一关联 (16)1 一对一单向外键关联 (16)2 一对一双向外键关联 (16)3 一对一单向主键关联(不重要) (17)4 一对一双向主键关联(不重要) (17)5 联合主键 (17)组件映射 (17)1 项目:hibernate_1100_component (17)2 对象关系:一个对象是另外一个对象的一部分 (17)3 数据库表:一表 (17)4 annotation: Embeddable Embbeded (17)5 xml: 使用<component,例如: (18)多对一与一对多 (18)1 多对一单向关联 (18)2 一对多单向关联 (19)3 一对多(多对一)双向关联 (19)多对多 (20)1 单向关联: (20)2 双向关联: (21)关联关系中的CRUD_Cascade_Fetch (21)1 hibernate_1700_one2many_many2one_bi_crud (21)2 设定cascade以设定在持久化时对于关联对象的操作(CUD,R归Fetch管) (21)3 cascade仅仅是帮我们省了编程的麻烦而已,不要把它的作用看的太大 (21)4 铁律:双向关系在程序中要设定双向关联 (22)5 铁律:双向mappedBy (22)6 fetch (22)7 Update时ManyToOne()中的cascade参数关系 (22)8 Delete时ManyToOne()中的cascade关系 (22)9 O/RMapping 编程模型 (23)10 要想删除或者更新先做load,除了精确知道ID之外 (23)11 如果想消除关联关系,先设定关系为null.再删除对应记录,如果不删记录,该记录变成垃圾数据 (23)12 练习:多对多的CRUD (23)关系映射总结 (24)1 什么样的关系,设计什么样的表,进行什么样的映射 (24)2 CRUD,按照自然的理解即可(动手测试) (24)集合映射(不太重要) (24)1 项目名称:hibernate_1800_Collections_Mapping (24)2 Set (24)3 List (与Set差不多多个OrderBy) (24)4 Map (24)继承映射(不太重要) (24)1 三种方式 (24)作业: (24)1 学生课程、分数的设计(重要) (24)2 设计: (25)3 树状结构的设计(至关重要) (25)Hibernate 查询(Query Language) (26)HQL vs EJBQL (26)1 NativeSQL >HQL.> EJBQL(JPQL 1.0) > QBC(Query By Criteria) > QBE(Query By Example)" 262 总结:QL应该和导航关系结合,共同为査询提供服务。
马士兵-Java笔记Java语言的特点:1. 一种面向对象的语言;2. 一种平台无关的语言,提供程序运行的解释环境;3. 一种健壮的语言,吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如:指针,内存的申请与释放等)。
Java两种核心机制:Java虚拟机、垃圾收集机制;一个Java源文件中最多只能有一个public类。
其他类的个数不限,如果源文件包含一个public类,它必须按该类名命名;Java标识符命名规则:1. 标识符由字母、下划线“_”、美元符“$”或数字组成;2. 标识符应以字母、下划线、美元符开头;3. Java标识符大小写敏感,长度无限制。
从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。
数据类型包括基本数据类型和引用数据类型:1. 基本数据类型:数值型:整数类型(byte,short,int,long),浮点类型(float,double)字符型(char)布尔型(boolean)2. 引用数据类型:类(class)接口(interface)数组Java语言的整型常量默认为int型,声明long型常量可以后加‘l’或‘L’。
Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F.Boolean类型不可以转换为其他的数据类型。
整型,字符型,浮点型的暑假在混合运算中相互转换,转换时遵循一下原则:1. 容量小的类型自动转换为容量大的暑假类型;数据类型按容量大小排序为:Byte,short,char->int->long->float->doubleByte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型2. 容量大的暑假类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。
java 私塾第五章笔记整理数组是由相同类型的若干项数据组成的一个数据集合,也就是说数组是用来集合相同类型的对象并通过一个名称来引用这个对象。
可以声明任何类型的数组-----原始类型或类类型。
当数组声明的方括号在左边时,该方括号可以用于所有位于其右边的变量:char [] s,y。
数组一旦被创建,在内存里占用连续的内存地址。
数组的静态性:数组一旦被创建,就不能更改数组的长度。
Point [] p = new Point[3];new int[][4]是非法的。
数组的复制System.arraycopy(myArray,0,hold,0,myArray.length);数组排序Arrays.sort(a);定义一个一维的int数组,先创建它,并初始化它,给它赋值,然后输出其中的一个值CODE:public class Arr{public static void main(String args[]){int a[] = new int[5];a[0]=1;a[1]=2;System.out.println(a[0]);}}[Copy to clipboard]定义一个一维的A类型数组,直接定义并赋值,然后输出其中的一个值CODE:public class A{public static int i;public static void main(String args[]){A aa = new A();A bb = new A();A a[] = {aa,bb};a[0].i=2;System.out.println(a[0]);}}[Copy to clipboard]把上面的数组改成2维的数组CODE:public class A{public static int i;public static void main(String args[]){A a[][] = new A[5][5];a[0][0].i=2;System.out.println(a[0][0]);}}[Copy to clipboard]举例说明数组拷贝方法的使用:arraycopy方法,CODE:public class A{public static void main(String args[]){int a[] = new int[5];int b[] = new int[5];System.arraycopy(a[5],0,b[5],0,a.length);System.out.println(b[0]);}}[Copy to clipboard]常见的排序算法CODE:public class SortAll {public static void main(String[] args) {int[] i = { 1, 5, 6, 12, 4, 9, 3, 23, 39, 403, 596, 87 };System.out.println("----冒泡排序的结果:");maoPao(i);System.out.println();System.out.println("----选择排序的结果:");xuanZe(i);System.out.println();System.out.println("----插入排序的结果:");chaRu(i);}// 冒泡排序public static void maoPao(int[] x) {for (int i = 0; i < x.length; i++) {for (int j = i + 1; j < x.length; j++) {if (x[i] > x[j]) {int temp = x[i];x[i] = x[j];x[j] = temp;}}}for (int i : x) {System.out.print(i + " ");}}// 选择排序public static void xuanZe(int[] x) {for (int i = 0; i < x.length; i++) {int lowerIndex = i;// 找出最小的一个索引for (int j = i + 1; j < x.length; j++) {if (x[j] < x[lowerIndex]) {lowerIndex = j;}}// 交换int temp = x[i];x[i] = x[lowerIndex];x[lowerIndex] = temp;}for (int i : x) {System.out.print(i + " ");}}// 插入排序public static void chaRu(int[] x) {for (int i = 1; i < x.length; i++) {// i从一开始,因为第一个数已经是排好序的啦for (int j = i; j > 0; j--) {if (x[j] < x[j - 1]) {int temp = x[j];x[j] = x[j - 1];x[j - 1] = temp;}}}for (int i : x) {System.out.print(i + " ");}}}[Copy to clipboard]二分法查找CODE:package com.sghlwxf.binarySoft;public class TestBinarySoft{public static void main(String args[]){int[] array= new int[]{4, 12, 23, 33, 45, 53, 65, 78, 88, 90 };//定义要查找的数int seek = 76;//定义下标int index = 0;//定义起始位置int start = 0;//定义结束位置int end = 0;//定义计数器while(true){count ++;//int index = (start + end)/2;//为了防止start+end溢出,所以写成start+((end - start)/2)int index = start + ((end - start)/2);if(array[index] <seek){start = index;}else if(array[index]>seek){end = index;}else{break;}}System.out.pritln("所运行的次数是"+count+"地址为"+index);}}[Copy to clipboard]【此处有二叉树图片,可以到java 私塾官网下载完整笔记:】CODE:/** 二叉树节点*/public class BTNode {private char key;private BTNode left, right;public BTNode(char key) {this(key, null, null);}public BTNode(char key, BTNode left, BTNode right) {this.key = key;this.left = left;this.right = right;}public char getKey() {return key;}public void setKey(char key) {this.key = key;}public BTNode getLeft() {return left;}public void setLeft(BTNode left) {this.left = left;}public BTNode getRight() {return right;}public void setRight(BTNode right) {this.right = right;}}[Copy to clipboard]CODE:/** 二叉树遍历*/public class BinTree {protected BTNode root;public BinTree(BTNode root) {this.root = root;}public BTNode getRoot() {return root;}/** 构造树*/public static BTNode init() {BTNode a = new BTNode('A');BTNode b = new BTNode('B', null, a);BTNode c = new BTNode('C');BTNode d = new BTNode('D', b, c);BTNode e = new BTNode('E');BTNode f = new BTNode('F', e, null);BTNode g = new BTNode('G', null, f);BTNode h = new BTNode('H', d, g);return h;// root}/** 访问节点*/public static void visit(BTNode p) {System.out.print(p.getKey() + " ");}/** 递归实现前序遍历*/protected static void preorder(BTNode p) {if (p != null) {visit(p);preorder(p.getLeft());preorder(p.getRight());}}/** 递归实现中序遍历*/protected static void inorder(BTNode p) {if (p != null) {inorder(p.getLeft());visit(p);inorder(p.getRight());}}/** 递归实现后序遍历*/protected static void postorder(BTNode p) {if (p != null) {postorder(p.getLeft());postorder(p.getRight());visit(p);}}/** 非递归实现前序遍历*/protected static void iterativePreorder(BTNode p) {Stack<BTNode> stack = new Stack<BTNode>();if (p != null) {stack.push(p);while (!stack.empty()) {p = stack.pop();visit(p);if (p.getRight() != null)stack.push(p.getRight());if (p.getLeft() != null)stack.push(p.getLeft());}}}/** 非递归实现后序遍历*/protected static void iterativePostorder(BTNode p) {BTNode q = p;Stack<BTNode> stack = new Stack<BTNode>();while (p != null) {// 左子树入栈for (; p.getLeft() != null; p = p.getLeft())stack.push(p);// 当前节点无右子或右子已经输出while (p != null && (p.getRight() == null || p.getRight() == q)) {visit(p);q = p;// 记录上一个已输出节点if (stack.empty())return;p = stack.pop();}// 处理右子stack.push(p);p = p.getRight();}}/** 非递归实现中序遍历*/protected static void iterativeInorder(BTNode p) {Stack<BTNode> stack = new Stack<BTNode>();while (p != null) {while (p != null) {if (p.getRight() != null)stack.push(p.getRight());// 当前节点右子入栈stack.push(p);// 当前节点入栈p = p.getLeft();}p = stack.pop();while (!stack.empty() && p.getRight() == null) {visit(p);p = stack.pop();}visit(p);if (!stack.empty())p = stack.pop();elsep = null;}}public static void main(String[] args) {BinTree tree = new BinTree(init());System.out.print(" Pre-Order:");preorder(tree.getRoot());System.out.println();System.out.print(" In-Order:");inorder(tree.getRoot());System.out.println();System.out.print("Post-Order:");postorder(tree.getRoot());System.out.println();System.out.print(" Pre-Order:");iterativePreorder(tree.getRoot());System.out.println();System.out.print(" In-Order:");iterativeInorder(tree.getRoot());System.out.println();System.out.print("Post-Order:");iterativePostorder(tree.getRoot());System.out.println();}}[Copy to clipboard]输出结果Pre-Order:H D B A C G F EIn-Order:B A D C H G E FPost-Order:A B C D E F G HPre-Order:H D B A C G F EIn-Order:B A D C H G E FPost-Order:A B C D E F G H。
第1章Java概述Java语言的特特点一种面向对象的语言;一种平台无关的语言;一种健壮的语言,吸收了C/C++的优势,但去掉了其阻碍程序健壮性的部份(如:指针、内存的申请与释放等)Java的两种核心机制Java虚拟机(Java Virtual Machine)垃圾回收机制(Garbage Collection)源程序(*.java文件)→Java编译器→字节码(*.class文件)→类装载器→字节码校验器→说明器→操作系统平台一次编译,到处运行Java是一种说明型语言JDK(Java Development Kit)软件开发工具包JRE(Java Runtime Environment)运行时环境开发需要JDK;用户只需JREPATH:WINDOWS系统执行命令时要搜寻的途径(如,)CLASSPATH:Java在编译和运行时要找的class所在途径(“.”代表当前途径)java:运行java程序javac:编译java程序java –version一个源文件最多只能有一个public类,其他类数量不限,源文件名必需与public类名一致Java应用程序的执行入口时main()方式:public static void main(String[] args){…} Java语言中严格区分大小写编译后,每一个类都对应一个class文件第2章基础语法标示符由字母、下划线”_”、美元符”$”或数字组成标示符应以字母、下划线、美元符开头Java标示符对大小写灵敏,长度无穷制,注意“见名知意”且不能与Java语言关键字重名goto和const尽管未利用,但也被作为Java的关键字保留程序执行进程:到内存区 2.找到main方式开始执行 3.执行进程中的内存治理Java数据类型的划分boolean类型数据只许诺取值true或false,不能够利用0或非0的整数值取代true和false,这点和c语言不同Java字符采纳Unicode编码,每一个字符占两个字节,因此能够用十六进制编码形式表示,例:char c = ‘\u0061’;Java语言的整型常量默以为int类型,声明long型常量能够后加l或L大体数据类型转换boolean类型不能够转换为其他的数据类型整型,字符型,浮点型的数据在混合运算中彼此转换,转换时遵循以下原那么:容量小的类型自动转换为容量大的类型:byte,short,char->int->long->float->doublebyte,short,char之间不需要彼此转换,他们三者在计算时第一会转换为int类型能够将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超过其表数范围“+”除用于算术加法外,还可用于对字符串进行连接操作,“+”运算符双侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接,当进行打印时,不管任何类型,都自动转换为字符串进行打印break&continuebreak语句用于终止某个语句块的执行。
JAVA视频教程尚学堂---手把手教程Call:86-主讲教师马士兵SCM系统--------Java+VC跨平台(电信宽带运营平台-------Java+WEB(J2EE)跨平台远程教学平台----Java+WEB(tomcat)VOD视频监控-----VCERP视频会议---------VC新闻发布系统-----Java+XML(模板)网上商城课堂内容、教学方法、学习方法、预备知识、教学资源JAVA基础贯穿数据结构的知识(时间复杂度、链表)---非常重要语法基础【变量、循环、分支】最核心的东西—原理--学好OO【面向对象是最重要的】有新东西学是好事----个人价值Exception 从Java Web开始,框架巨多无比Array【数组】基础类、常用类I/O StreamCollection/Generic【集合类】Thread【线程】TCP/UDP【网络底层】GUI【Graphic User Interface 图形化用户接口窗口】Meta Data【以后讲,与紧密相关】Regular Expression【正规表达式】JDK初步Java Web编程【主攻一个框架---讲原理,略讲其他框架】针对Web程序J2EE【一套标准,包含Java Web 、JDPC、JSP、SP、JB/开源框架—就分步式来说,目前(2005)无东西与之抗衡】(比较,,)企业级应用J2ME移动设备移动增值SP运营商3G,2.5G,要火爆起来【网络先铺起来,应用才能上来;3G的网络还没有铺开、火爆起来,讲3G的应用超前了】巨无霸式的教学理论举例理论回顾练习讲解【三片面包加两片肉】注重结合工程实践【完全结合】注重传授自学能力【自学的东西相当重要,授人以鱼,不如授人以渔;慢慢学会掌握一定基础后才有,灌输、背,融成血液里的一部分,心中无剑,手中有剑—前提—心中有剑手中也有剑;时间短,强度大,该背就背】个人能力分三个层次知识学习前人的知识---学习能力的一个表现,被动地接受—接受能力{自己学习了知识后考虑如何去应用,去---学习解决问题的方法【类似问题遇到过】灵活运用学到的知识【碰到什么问题采用什么方法】解决问题的思路【最高层次】创造解决问题的方法【思路掌握了,遇到新问题,自己拓展一条思路,解决问题,不可能一口吃成一个胖子,沿着这三个层次一点一点往上升首先打造自己学习知识的能力,先把该掌握的知识掌握了,再谈如何应用---如何教---教大家写项目每一个知识教太深—给项目留得时间特别短---不合适;自学一些东西,慢慢去培养解决问题的思路,试着朝这个方向去培养,工作后慢慢遇到新问题使劲去思考了积累起来逐渐会有这个能力,灵活一点、再灵活一点!基础知识要背—灵活应用的东西不能背,无一定之规,在实践中慢慢锻炼—实践的越多—敲的代码越多(掌握思路后自主敲代码,哪怕敲不出来再看别人的思路—收获远远不一样,学习要自主一点,多思考思路才能开阔—无捷径,努力锻炼自己的就业能力。
马士兵vip课笔记
马士兵VIP课笔记
1. 课程概述
马士兵的VIP课程是一个全面的编程培训项目,涵盖了从基础到高级的各类编程知识和技能。
该课程强调实战编程,注重培养学员的实际项目开发能力。
通过学习此课程,学员可以掌握多种编程语言和技术,为未来的职业发展打下坚实的基础。
2. 课程内容
•基础概念:课程首先介绍了编程的基本概念,如变量、数据类型、控制结构等。
•面向对象编程:深入探讨了面向对象编程的概念,包括类、对象、继承和多态等。
•高级编程技术:涵盖了如泛型、反射、异步编程等高级编程技术。
•框架与库:介绍了多个主流的编程框架和库,如Spring、Django等。
•实战项目:课程以多个实战项目作为结尾,让学员在实际操作中巩固所学知识。
3. 课程特色
•实战导向:课程强调实战编程,注重培养学员解决实际问题的能力。
•内容全面:课程内容涵盖了从基础到高级的各类编程知识和技能,满足不同层次学员的需求。
•互动性强:课程中设置有多个互动环节,鼓励学员与老师和同学进
行交流和讨论。
•社区支持:提供了一个强大的社区支持,学员可以在社区中寻求帮助和分享经验。
4. 总结
马士兵的VIP课程是一个非常全面且实战导向的编程培训项目。
通过学习此课程,学员可以系统地掌握编程知识和技能,为未来的职业发展打下坚实的基础。
如果你是一位编程爱好者或者想要在编程领域有所建树,那么这门课程是你不容错过的选择。