java核心技术 要点笔记1
第1章
1、java特性
简单性,java语法是一个C++语法的纯净版本。
面向对象,java将重点放在数据和对象的接口上。java与C++的主要不同点在于多继承,在java中实现多继承的机制是采用接口以及元类模型。
网络技能,健壮性,安全性,体系结构中立,
可移植性,java的基本类型的大小以及有关算法都做了明确的规定,java规范没有依赖具体实现。例如:java中的int类型永远是32位的整数,在其他语言中就不一定。其他语言只有一种规定就是int类型的大小不能低于shortint,不能高于long int。java中的字符串使用标准的Unicode格式存储。
解释性,高性能,多线程,动态性。
2、java发展史
java以C++为基础。
java版本发展过程
版本 年份 语言新特性 类与接口的数量
1.0 1996 语言本身 211
1.1 1997 内部类 477
1.2 1998 无 1524
1.3 2000 无 1840
1.4 2004 断言 2723
5.0 2004 泛型 for each 可变元参数 自动打包 元数据 枚举 静态导入 3279
6 2006 无 3777
第3章:基本程序设计结构
1.简单的应用程序
public class FirstSample
{
public static vod main(String[] args)
{
System.out.println("Hello World!")
}
}
类名大写字母开头,若名字由多个单词构成,每个单词第一个字母都要大写;
源代码电网文件名必须与公共类的类名相同,并用java做拓展名;
java虚拟机从指定类的main方法开始执行;
main方法必须声明为public,必须是静态的;
2.注释
行注释: //
段注释: /* */
生成文档: /** **/
3.数据类型
java是强类型语言,即必须为每一个变量声明一种类型;
java一共有8种基本类型:4种整型 2 种浮点型 1种字符类型char 1种bool类型;
java中所有数值类型所占用的字节数与平台无关;
4.变量
声明一个变量后,必须用赋值语句对变量进行显式初始化;
可以将声明放在代码中的任意位置;
利用关键字final指示常量, static final指示类常量,const是java保留字但并未使用;
5.运算符
6.字符串
String类包含在java.lang包中,这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class),不需要显式的使用import引入String类;
String类是唯一一个不需要new关键字来创建对象的类;
java没有内置的字符串类型,而是在标准java类库中提供预定义类String,即每个字符串都是String类的一个实例;
不能修改字符串中的字符;
不能使用==运算符检测两个字符串是否相等,只能确定是否在一个位置上,只有字符串常量是共享的,而+或substring等操作生成的并不是共享的;
检查空串: if(str.length == 0) 或 if (str.equals("")) , 检测nil串: if(str == null)
import java.util.Arrays;
class StringDemo
{
public static void main(String [] args)
{
String name1="hello world";
String name2="hello world";
String name3=new String("hello world");
String name4=new String("hello world");
System.out.println( name1==name2 );//true
System.out.println( name3==name4 );//false System.out.println("字符串的查找----------------------------------------"); System.out.println("字符串的使用!String");
System.out.println(name1.length()+":字符串的长度");
System.out.println(name1.charAt(3)+":返回指定下标的字符");
System.out.println(name1.indexOf('o')+":通过字符找到字符的下标");
System.out.println(name1.lastIndexOf('o')+":返回最后一个字符的下标"); System.out.println("字符串的判断-----------------------------------"); String s="";
System.out.println(s.isEmpty());//true 长度为0返回true 否则返回false
String fileName="Demo1.java";
System.out.println(fileName.endsWith(".java"));//判断某个是否已某个字符串结尾
System.out.println(fileName.contains("java"));//判断是否包含某个字符串
System.out.println(fileName.equals("java"));//false
System.out.println("java".equals("java"));//true
System.out.println("java".equalsIgnoreCase("JaVa"));//true忽略大小写比较 System.out.println("字符串转换---------------------------------------");
String str=new String(new char[]{'a','b','c','d','e'});
System.out.println(str); char[] charArr=str.toCharArray();//字符串装换成字符数组
System.out.println(Arrays.toString(charArr)); String strBy=new String(new byte[]{97,98,99});
System.out.println(strBy);
byte [] byteArr=strBy.getBytes();
System.out.println(Arrays.toString(byteArr));//字符串转换成byte数组 System.out.println("字符串替换---------------------------------------"); String strRe="hello world !";
System.out.println(strRe.replace("world","java"));//都会重新创建一个对象,原来的 对象不会改变 System.out.println("字符串切割---------------------------------------");
String strSpl="hello world !";
String[] strArraySpl=strSpl.split(" ");
System.out.println(Arrays.toString(strArraySpl)); System.out.println("字符串子串------------------按照指定顺序求字符串的一部分---------------------");
String strSub="hello world !";
System.out.println(strSub.substring(3));//也是产生新的字符串
System.out.println(strSub.substring(3,9));//假如超过了字符串的长度,那么用"空"表示
//System.out.println(strSub.subString(6,4))//运行时报错可以大于等于前面一个下标 System.out.println("字符串大小转换---------------------------------------");
String strUp="HELLO world";
System.out.println(strUp.toUpperCase());
System.out.println(strUp.toLowerCase()); System.out.println("字符串去除两边空格---------------------------------------");
String strTr=" hello world ! ";
System.out.println(strTr.trim()); //trim的实现 数组里面的length是属性不是方法
String strTrm=" hello world ! ";
char[] charTr=strTrm.toCharArray();
int start=0;
int end=charTr.length;
for(int i=0;i<charTr.length;i++){
if(charTr[i]==' ')
start++;
else
break;
}
for(int i=charTr.length-1;i>=0;i--)
{
if(charTr[i]==' ')
end--;
else
break;
}
System.out.println(strTr.substring(start,end+1));
} /* string 对象的创建: String name1="my";是放在内存常量区中
方式1: string对象是放在常量池中的一块内存地址
放置之前先检查该区域是否已经放有该常量,如果有,直接返回地址 方式2:String name3=new String("my");
这个是放在堆内存里面的,创建出来的对象是不相等的,因为内存地址不一样 String特点:
1、由于字符串底层是由一个字符数组来实现的,所以String是不可变的
2、String 重写了Object的hashCode方法
== 表示比较的是地址 String 常用的方法: */
}
String demo
7.输入输出
数据流: http://blog.csdn.net/hguisu/article/details/7418161
读取输入:Scanner类 (java.util.Scanner)
public class TestScanner {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入字符串:");
while (true) {
String line = s.nextLine();
if (line.equals("exit")) break;
System.out.println(">>>" + line);
}
}
}
格式化输出:
文件输入与输出:
java.utiil.Scanner Scanner(File f) 构造一个从给定文件读取数据的Scanner;
Scanner(String data) 构造一个从给定字符串读取数据的Scanner;
java.io.PrintWriter PrintWriter(String filename) 构造一个将数据写入文件的PrintWriter,文件名由参数指定
8.控制流
快作用域: 一个块可以嵌套在另一个块中,但不能在嵌套的块中声明同名的变量;
public static void main(String[] args)
{
int n;
{
int k;
int n; //ERROR, can't redefine n in inner block
}
}
条件语句:
循环语句:while , do.....while
确定循环:for 若在for内部定义一个变量,这个变量不能在循环体外使用
for(int i=1; i<=10;i++)
{
...
}
//i no longer defined here int i
for(i=1;i<=10;i+=)
{
...
} //i is still defined here
多重选择: switch语句
中断控制流程语句: 带标签的break语句
9.大数值
java.math包提供了类: BigInteger 和 BigDecimal,实现任意精度的整型运算和浮点型运算
10.数组
创建数组时,所有元素都初始化为0,bool类型为false,对象数组的元素为null,表示还未存放任何元素;
for each循环: for(variable:collection) statement
数组拷贝:数组变量拷贝给另一个变量,此时两个变量将引用同一个数组;
命令行参数: java Message -h world ,则 args[0]= -h, args[1]= world;
多维数组:
java核心技术 要点笔记1的更多相关文章
- java核心技术 要点笔记2
第4章 对象和类 1.面向对象 类:构造对象的模板,创建类的实例:由类构造对象的过程,封装,继承: 对象:对象的特性——对象的行为,对象的状态,对象的标识: 类之间的关系: 依赖(“user-a” ...
- java核心技术 要点笔记3
1.类,超类和子类 2.Object:所有类的超类 3.泛型数组列表 4.对象包装器和自动装箱 5.参数数量可变的方法 6.枚举类 7.反射 8.继承设计的技巧
- java核心技术学习笔记之一程序设计概述
Java 核心技术之一程序设计概述 一. Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...
- java中的自动拆装箱与缓存(Java核心技术阅读笔记)
最近在读<深入理解java核心技术>,对于里面比较重要的知识点做一个记录! 众所周知,Java是一个面向对象的语言,而java中的基本数据类型却不是面向对象的!为了解决这个问题,Java为 ...
- java核心技术学习笔记之一程序设计环境
一术语 JDK:Java Delelpment Jit JRE:Java Runtime Environment 二.安装jdk1.8.0_25 设置环境变量(建议直接安装在C盘下),使用:隔开 C: ...
- java核心技术卷一笔记(1)
jdk是java开发工具包,里面包含了javac.jar.javadoc.java等工具,可以在bin目录中找到.有一个文件夹是jre,即jdk也包含了java运行环境.jre可单独安装,只是运行ja ...
- Java核心技术卷一 · 笔记(2)
目录 1.多态.动态绑定 2.覆盖 3.阻止继承:final 类和方法 4.抽象类(abstract修饰) 5. 4 个访问修饰符: 6.toString() 7.对设计继承关系很有帮助的建议 8.接 ...
- Java核心技术卷一 · 笔记(1)
目录 1.java的关键术语 2.==和equals 3.空串与 Null 串 4.构建字符串 5.封装 6.对象的三个主要特性 7.依赖(dependence).聚合(aggregation).继承 ...
- java 核心技术卷一笔记 6 .2.3 接口 lambda 表达式 内部类
6.2.3 对象克隆 Cloneable 接口,这个接口指示一个类提供了一个安全的clone方法.(稍作了解) 为一个对象引用的变量建立副本时,原变量和副本都是同一个对象的引用,任何一个变量改变都 ...
随机推荐
- .NET 中文件嵌套,例如:cshtml文件下面嵌套css和js【机器翻译】
越来越多的我发现自己在我的一些较大的Web项目中丢失了文件.有很多内容要处理 - HTML视图,几个派生CSS页面,页面级CSS,脚本库,应用程序范围的脚本和页面特定的脚本文件等等.幸运的是,我使用R ...
- 菜鸟眼中的”AppSettings和ConnectionStrings“
前言 这次的机房收费系统重构,我们用到了这个配置文件.瞬间感觉高大上了许多,对新鲜的事务就是又陌生又好奇,通过看静静的博客,还有自己查资料花了点时间弄了弄,下面是我整理的结果. 内容 是什么 AppS ...
- 洛谷P1047 校门外的树
P1047 校门外的树 题目描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0 ...
- 根据T-Code查看用户出口的代码
在此非常非常感谢源作者,这段代码真的非常非常有用好用! REPORT YLBTEST. TABLES : tstc, "SAP Transaction Codes(SAP 事务代 ...
- bootstrap table 学习记录
效果: html代码: <!-- 工具容器 --> <div id="toolbar" class="btn-group"> <b ...
- MySQL服务器与MySQL57服务器区别与不同处在哪里,他们各自的领域范围,能不能同时启动服务?
安装了MySQL-5.7.18.0版本数据库,版本中包含了MySQL Workbench可视化试图工具,在服务列表栏中会有MySQL的两个服务器:如果启动第一项MySQL服务器就只能操作数据库,外界不 ...
- JS如何在本地读取json等文件
JS使用ajax等在本地读取文件的时候,会报如下的错误: 解决方法一: npm install http-server -g 全局安装 http-server 下载完成之后再在目标文件中cmd中输入 ...
- LeetCode 260 Single Number III 数组中除了两个数外,其他的数都出现了两次,找出这两个只出现一次的数
Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...
- 牛客网训练赛26D(xor)
题目链接:https://www.nowcoder.com/acm/contest/180/D 线性基的学习:https://www.cnblogs.com/vb4896/p/6149022.html ...
- HDU 6153 A Secret 套路,求解前缀在本串中出现的次数
http://acm.hdu.edu.cn/showproblem.php?pid=6153 首先相当于翻转两个串,然后求s2前缀在s1中出现的次数. 这是一个套路啦 首先把两个串结合起来,中间加一个 ...