1:Java文档注释;
使用javadoc工具可以提取程序中文档注释来生成API文档;
javadoc命令的基本用法;
javadoc 选项 java源文件/包
javadoc -d {} -windowtitle {} - doctitle {} -header {}
2:数据类型和运算符
byte 1 short 2 int 4 long 8 float 4 double 8 boolean 1 char 1;
3:java自动类型转换;
char ->
int ->long->float->double
byte->short->
注意byte类型不能自动转换成char类型;
强制类型转换:从上边箭头右边的转换为左边时,需要使用强制类型转换;格式(target Type)value;

public static void main(String[] args) {

// TODO Auto-generated method stub
System.out.println("强制类型转换示例");
int i=128;
byte s=(byte)i;
byte s1=(byte)(i-1);
byte s2=(byte)(i+1);
byte s3=(byte)(i-10);
System.out.println(s);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println((byte)233);
}

output:
强制类型转换示例
-128
127
-127
118
-23
因为32位的int转换为byte类型时候直接将最后8为截断赋值,
3.2:另外所有的byte short 和 char 类型在参与算术表达式运算时候将发生自动提升;
例如 short s=2;s=s-1;将会产生错误;
3.3:string类型直接量不能赋给其他类型变量null类型直接量可以赋给任何引用类型的变量包括string类型。
4:运算符
+ - * / % ;
& 按位与;
| 按位或
~ 按位非
^ 按位异或
<< 左位移运算符
>> ....
>>>无符号右位移运算符
示例:

 public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("位运算"); String str =null;
System.out.println(str);
System.out.println(str);
System.out.println(5|9);
System.out.println(1<<1);
System.out.println(1<<2);
System.out.println(-128>>1);
System.out.println(-128<<1);
System.out.println(-1>>>1); }

output:
位运算
null
null
13
2
4
-64
-256
2147483647
扩展赋值运算符;
+/-/*///= %= &/|/~/^/= <</>>/>>>/=
5:数组
数组的定义;
type[] arrayName;
type arrryName[];
静态初始化:arrayName=New type[]{,,,,,,};
arrName ={,,,,,,,};
动态初始化数组;只进行数组的长度的定义;
Type[] arrayName=new Type[N];
int [] ints=new int[10];

5.1 数组的遍历:foreach
语法格式 for(Type TempVar:arrayName)
示例如下:

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("foreach"); String[] strArry={"1","2","3","4"};
for(String temp:strArry)
{
System.out.println(temp);
}
for(String temp:strArry)
{
temp="1";
System.out.println(temp);
}
}

output:
foreach
1
2
3
4
1
1
1
1
5.2关于数组,数组是一种引用数据类型,数组引用变量只是一个引用数组元素和数组变量在内存中是分开存放的。
数组引用变量可以执行任何有效的内存,只有当该引用指向有效内存后才可以通过该数组变量来访问数组的元素;
也就是说:
实际的数组元素被存在堆内存(heap)中,数组引用变量是一个引用类型的变量,被存在栈内存(stack)中,数组引用变量就像是“指针”;
示例:

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("数组长度可变?");
String[] strArry={"1","2","3","4"};
String[] strArry1=new String[2]; System.out.println("Length of strArry1="+strArry1.length);
strArry1=strArry;
System.out.println("Length of strArry1="+strArry1.length); }

output:
数组长度可变?
Length of strArry1=2
Length of strArry1=4
从上述程序来看两次输出数组的长度发生改变;但实际上不是数组长度发生改变而是数组引用的内存空间发生改变,这种操作会让人觉得数组长度变了;
由上述例子来看:看数组时候应把数组看成两个部分一个是数组引用一个是实际数组本身,而数组本身死存放在系统内存里的通常无法直接访问,只能通过数组引用变量来访问它;
5.3多维数组;比如二维数组其实可以看做是数组内容是引用类型的数组 这个引用类型数组的每一个元素又是一个一维数组的引用;

public static void main(String[] args) {
int[][] a;
a=new int [2][];
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
a[0]=new int[2];
a[0][1]=6;
a[1]=new int[9];
for(int i=0 ;i<a[0].length;i++)
{
System.out.println(a[0][i]);
} for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
}

output:
null
null
0
6
[I@785d65
[I@3bc257
前2个输出元素是 引用类型因为没有为其开辟堆内存所以输出结果为null即为空引用;
中间2个为一维数组(a[2])[2]的两个值得输出
最后输出为经过赋值以后 引用类型的值 可以看出他们指向一块内存区域;
很神奇的事情是 “二维数组”(把二维数组看做是行列结构的数组)的第一行和第二行长度可以不相同这是很神奇的;

Java 学习 第一篇的更多相关文章

  1. 从.Net到Java学习第一篇——开篇

    以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...

  2. java 学习第一篇简单基础

    Java基础 Java Java 和C#有着极为相似的语法. 和C#都是面向对象的高级程序语言. JAVA是一个开源,公开的语言,有着极其丰富的开源库和其他资源. JAVA分类 JAVA分SE EE ...

  3. Java学习第一篇:变量,数据类型,运算符,流程控制(简介)

    一.安装和配置jdk 1.jdk是什么? (1).jdk全称是Java Development Kit, Java开发工具包; (2).jdk是sun公司开发的; (3).jdk主要包括:jre(Ja ...

  4. Java学习第一篇 — 字符串

    package StringTest; public class TestString { public static void main(String[] args){ // String str= ...

  5. 从.Net到Java学习第二篇——IDEA and start spring boot

    从.Net到Java学习第一篇——开篇 所谓工欲善其事,必先利其器,做java开发也一样,在比较了目前最流行的几个java IDE(eclipse,myeclipse.IDEA)之后,我果断选择IDE ...

  6. Java并发包下锁学习第一篇:介绍及学习安排

    Java并发包下锁学习第一篇:介绍及学习安排 在Java并发编程中,实现锁的方式有两种,分别是:可以使用同步锁(synchronized关键字的锁),还有lock接口下的锁.从今天起,凯哥将带领大家一 ...

  7. JVM学习第一篇思考:一个Java代码是怎么运行起来的-上篇

    JVM学习第一篇思考:一个Java代码是怎么运行起来的-上篇 作为一个使用Java语言开发的程序员,我们都知道,要想运行Java程序至少需要安装JRE(安装JDK也没问题).我们也知道我们Java程序 ...

  8. Java学习第一天

    Java学习第一天 对于网络管理员或者黑客必须知道的八个cmd命令 详情请参考:http://www.2cto.com/os/201608/533964.html          nbtstat  ...

  9. Java 学习第一步-JDK安装和Java环境变量配置

    Java学习第一步——JDK安装及Java环境变量配置 [原文]  2014-05-30 9:09  Java SE  阿超  9046 views Java作为当下很主流的编程语言,学习Java的朋 ...

随机推荐

  1. VirtualBox修改虚拟盘路径

    VirtualBox虚拟盘路径默认是存在C盘的,而当我们发现C盘不够用的时候,想转移就感觉有点麻烦了,现在给大家介绍一个简单又使用的方法. 第一步:到默认目录C:\Users\Administrato ...

  2. Codeforces 463D Gargari and Permutations

    http://codeforces.com/problemset/problem/463/D 题意:给出k个排列,问这k个排列的最长公共子序列的长度. 思路:只考虑其中一个的dp:f[i]=max(f ...

  3. LeetCode_Combinations

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...

  4. ActiveX in QT

    http://doc.qt.io/qt-4.8/activeqt.htmlhttp://doc.qt.io/qt-5/activeqt-index.html

  5. Android面试题07

    62. 说说mvc模式的原理,它在android中的运用. MVC英文即Model-View-Controller,即把一个应用的输入.处理.输出流程按照Model.View.Controller的方 ...

  6. JSTL核心标签库学习笔记

    写的很简单,不一定会有用,如果想要详细的话,建议看API啊--- 不过在这里推荐一个地址,http://www.yiibai.com/jstl/  希望对你们有帮助啊,很好的教材啊 1.<c:i ...

  7. linux使用共享内存通信的进程同步退出问题

    两个甚至多个进程使用共享内存(shm)通信,总遇到同步问题.这里的“同步问题”不是说进程读写同步问题,这个用信号量就好了.这里的同步问题说的是同步退出问题,到底谁先退出,怎么知道对方退出了.举个例子: ...

  8. BOOST中如何实现线程安全代码

    1 需要include <boost/thread.hpp> 2 背景知识请参考<boost程序库完全开发指南>第12章 3 编绎:g++ -o mthread mthread ...

  9. Qt Assistant 的配置文件qhp--->qch 和qhcp--->qhc详解与生成

      Qt Assistant 这个exe文件可以被我们利用到我们自己的程序为我们添加help,是一个文档浏览器,它的搜索功能,还有最主要的就是他可以让客户自己定义自己索要显示的文档,也就是qch文档. ...

  10. T-SQL和PL/SQL 区别

    结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统:同时也是数据库 ...