A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 迦南 中级黑马   /  2014-8-22 21:04  /  2861 人查看  /  24 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

1.整型
byte:一个byte类型整数在内存里占8位
short:一个short类型整数在内存里占16位
int:一个int类型整数在内存里占32位
long:一个long类型整数在内存里占64位
java中整数常量有4种表示方式:二进制,十进制,八进制和十六进制,其中八进制的整数常量是以0开头,十六进制的整数常量是以0x或者0X开头,其中10~15分别以a-f来表示   java7新增了对二进制整数的支持,二进制的整数以0b或者0B开头

java语言中常用的转义字符
\b      退格符    \u0008
\n      换行符    \u000a
\r      回车符    \u000d
\t      制表符    \u0009
\"      双引号    \u0022
\'      单引号    \u0027
\\      反斜线    \u005c

只有浮点数除以0才可以得到正无穷大或者负无穷大,因为java语言会自动把和浮点数运算的0(整数)当成0.0(浮点数)处理,如果一个整数值除以0,则会抛出一个异常:ArithmeticException:/by zero(除以0异常)

三目运算符语法格式
(expression) ? if-true-statement : if-false-statement;
String str = 5>3 ? "5大于3" : "5不大于3";
//输出 "5大于3"
System.out.println(str);

使用switch语句时,有两个值得注意的地方:第一个地方是switch语句后的expression表达式的数据类型只能是byte,short,char,int四个整数类型和枚举类型;第二个地方是如果省略了case后的代码块的break;将引人一个陷阱

do while循环语句与while循环不同的是,do while 循环的循环条件后必须有一个分号,这个分号表明循环结束。
for循环和while,do while 循环不一样,由于while,do while 循环的循环迭代语句紧跟着循环体,因此如果循环体不能完全执行,如使用continue语句来结束本次循环,则循环迭代语句不会被执行,但for循环的迭代语句并没有与循环体放在一起,因此不管是否使用continue语句来结束本次循环,循环迭代语句一样会获得执行。选择循环变量时,习惯选择i,j,k来作为循环变量。通常紧跟break之后的标签,必须在break所在循环的外层循环之前定义才有意义。

定义数组时不能指定数组的长度,不要同时使用静态初始化和动态初始化,也就是说,不要在进行数组初始化时,既指定数组的长度,也为每个数组元素分配初始值。java语言的数组索引是从0开始的,如果访问数组元素指定的索引小于0,或者大于等于数组的长度,编译程序不会出现任何错误,但运行时出现异常:java.lang.ArrayIndexOutOfBoundsException:N(数组索引越界)

foreach循环
String[] books = {"","",""};
for(String book : books){
    System.out.println(book);
}

实际的数组对象被存储在堆(heap)内存中,如果引用该数组对象的数组引用变量是一个局部变量,那么他被存储在栈(stack)内存中.当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁,因此,所有在方法内定义的局部变量都是放在栈内存中的;当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法借宿后,这个对象还可能被另一个引用变量所引用(在方法的参数传递时很常见),则这个对象依然不会被销毁。只有当一个对象没有任何引用变量引用它时,系统的垃圾回收器才会在合适的时候回收它。
Arrays类处于java.util包下,为了在程序中使用Arrays类,必须在程序中导入java.util.Arrays类

类的构造器是有返回值的,当我们用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值,因此构造器的返回值类型总是当前类,无需定义返回值类型,但必须注意:不能在构造器里显式使用return来返回当前类的对象,因为构造器的返回值是隐式的

省略this前缀只是一种假象,虽然程序员省略了调用jump()方法之前的this,但实际上这个this依然是存在的,对于java语言来说,调用属性,方法时,主调是必不可少的,即使代码中省略了主调,但实际的主调依然存在,一般来说,如果调用static修饰的成员(包括方法,field)时省略了前面的主调,那么默认使用该类作为主调,如果调用没有static修饰的成员时省略了前面的主调,那么默认使用this作为主调

长度可变的形参只能处于形参列表的最后,一个方法中最多只能包含一个长度的形参,调用包含一个长度可变形参的方法时,这个长度可变的形参既可以传入多个参数,也可以传入一个数组。

对于int f(){}和void f(){}两个方法,如果这样调用int result = f();,系统可以识别是调用返回值类型为int的方法;但java调用方法时可以忽略方法返回值,如果采用如下方法来调用f();你能判断是调用哪个方法吗?如果你尚且不能判断,那么java系统也会糊涂,在编程过程中有一条重要规则,不要让系统糊涂,系统一糊涂,肯定就是你错了,因此,java里不能使用方法返回值类型作为区分方法重载的依据。


java的常用包
java.lang: 这个包下包含了java语句的核心类,如String,Math,System和Thread类等,使用这个包下的类无需使用import语句导入,系统会自动导入这个包下的所有类。
java.util: 这个包下包含了java的大量工具类/接口和集合框架类/接口,例如Arrays和List,set等
java.net: 这个包下包含了一些java网络编程相关的类/接口
java.io:这个包下包含了一些java输入/输出编程相关的类/接口
java.text:这个包下包含了一些java格式化相关的类
java.sql:这个包下包含了java进行JDBC数据库相关的编程的相关类/接口
java.awt:这个包下包含了抽象窗口工具集,这些类主要用于构建用户图形界面
java.swing:这个包下包含了swing图形用户界面编程的相关类/接口

通常建议为java类保留无参数的默认构造器,因此,如果为一个i类编写了有参数的构造器,则通常建议为该类额外提供一个无参数的构造器
为什么要用this来调用另一个重载的构造器?如果仅仅从软件功能实现上来看,这样复制,粘贴确实可以实现这个效果,但从软件工程的角度来看,这样做是相当糟糕的。在软件开发里有一个规则:不要把相同的代码段书写两次以上,因为软件是一个需要不断更新的产品,因此尽量避免相同的代码重复出现,充分复用每一段代码,既可以让程序代码更加简洁,也可以降低软件的 维护成本。

为了在子类方法中访问父类中定义的,被隐藏的实例变量,或为了在子类方法中调用父类中定义的,被覆盖(Override)的方法,可以通过super.作为限定来调用这些实例变量和实例方法

引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法。因此,编写java代码时,引用变量只能调用声明该变量时所用类里包含的方法。例如,通过Object p = new Person()代码定义一个变量p,则这个p只能调用Object类的方法,而不能调用Person类里定义的方法。

当把子类对象赋给父类引用变量时,被称为向上转型(upcasting),这种转型总是可以成功的,这也从另一个侧面证实了子类是一种特殊的父类。这种转型只是表明这个引用变量的编译时类型是父类,但实际执行它的方法时,依然表现出子类对象的行为方式,但把一个父类对象赋给子类引用变量时,就需要进行强制类型转换,而且还可能在运行时产生ClassCastException异常,使用instanceof运算符可以让强制类型转换更安全


String str = "123"
int it1 = Integer.parseInt(str);
int it2 = new Integer(str);

String floatStr = "4.56";
float it1 = Float.parseFloat(floatStr);
float it2 = new Float(floatStr);

String ftstr = String.valueOf(2.345f);

把基本类型变量和“”进行连接运算,系统会自动把基本类型变量转换成字符串
//intStr的值为"5"
String intStr = 5 + "";

java对数据进行缓存,缓存是一种非常优秀的设计模式,在java,java EE 平台的很多地方都会通过缓存来提高系统的运行性能,简单地说,如果你需要一台电脑,那么你就去买了一台电脑。但你不可能一直使用这台电脑,你总会离开这台电脑-在你离开电脑的这段时间内,你如何做?你会不会立即把电脑扔掉?当然不会,你会把电脑放在房间里,等下次又需要电脑时直接开机使用,而不是再次去购买一台。假设电脑是内存中的对象,而你的房间是内存,如果房间足够大,则可以把所有曾经用过各种东西都缓存起来,但这不可能,房间的空间是有限制的,因此有些东西你用过一次就扔掉了。你只会把一些购买成本大,需要频繁使用的东西保存下来。类似地,java也把一些创建成本大,需要频繁使用的对象缓存起来,从而提高程序的运行性能。

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 很给力!

查看全部评分

24 个回复

倒序浏览
涨姿势了
回复 使用道具 举报
给力,收藏下!
回复 使用道具 举报
给力啊 ,,,,,,,
回复 使用道具 举报
不错,要是是文档形式的话,就更好了。
回复 使用道具 举报
感谢分享。。
回复 使用道具 举报
好东西呀···
回复 使用道具 举报
迦南 中级黑马 2014-8-23 21:16:12
8#
回复 使用道具 举报
迦南 中级黑马 2014-8-23 21:17:26
9#

互相学习
回复 使用道具 举报

呵呵,下次改进
回复 使用道具 举报
.Mч┞尛__洋 发表于 2014-8-23 12:02
给力啊 ,,,,,,,

谢谢!!!
回复 使用道具 举报
复仇者联盟 发表于 2014-8-23 12:04
不错,要是是文档形式的话,就更好了。

不知道怎么发:L
回复 使用道具 举报

不用谢!
回复 使用道具 举报
难道基础的20多天视频 就这些 知识点吗
回复 使用道具 举报

呵呵,谢谢
回复 使用道具 举报
整理的还不错 不过要是更详细下就好了
回复 使用道具 举报
丨懒蟲灬Nigh 发表于 2014-8-23 21:26
整理的还不错 不过要是更详细下就好了

好的,后续会重新分享的
回复 使用道具 举报
wfaly 中级黑马 2014-8-24 01:39:25
18#
谢谢 楼主分享
回复 使用道具 举报

谢谢,:)
回复 使用道具 举报
谢谢分享,赶紧复制
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马