Java初窥门径,学而时习之。.——16/10/11

  0基础的文科生,今天开始了java语言的学习,俗话说学而时习之,所以就通过写博客的方式复习并记录学习轨迹。

首先自然是了解Java语言,由于JVM也就是虚拟机的存在这门语言实现了一次编写跨多平台运行,这也是Java风靡各平台的原因之一。之后就是了解Java目录下存放的几个重要文件夹,有存放编译器解释器等工具的bin目录,有存放附加库,开发工具所需的非核心类库的lib目录,还有归档源代码的src.zip文件。在配置环境变量,安装了文本编辑器之后,我们就进入了第一个程序HelloWorld的编写。

Java程序的开发步骤简单分为三步:

①编写源文件,用关键字class定义一个首字母大写并且不能有空格的的类名作为存放代码的容器。和大家一样,我的第一个类名也是HelloWorld。

②编译源文件,javac HelloWorld.java对源文件进行编译,产生虚拟机可以识别的字节码文件HelloWorld.class

③运行字节码文件。java HelloWorld  返回结果HelloWorld.

接着我们开始了解Java的关键字,共51个,已经在HelloWorld的编写中邂逅了class public static void等。然后是标识符及其命名规则,如DayTwo  day_2  _blog  $blog都是合法的标识符。需要注意的主要是不能以数字开头以及避开那51个关键字。但经过尝试,包含关键字的字符序列比如 myclass  _public 也是合法的标识符。

然后是下午的重点之一变量的概念及使用。变量名就是我们给储存数据的内存空间起的别名。分为声明,赋值及使用三个步骤。变量的命名规则比标识符多了一个首字母小写,如DayTwo虽然是合法的标识符命名,但却是非法的变量命名。另外,int a=1,b=2,c=3;这样同时声明多个变量也是合法的。

最后是了解数据类型。数据类型包括基本(简单)数据类型和引用数据类型。今天主要了解的是基本数据类型,这其中又包含布尔类型和数值类型。布尔类型只有一个boolean,数值类型包括byte  char short int long这五个整数类型和float double这两个浮点类型。 需要注意的是,float赋值后须加f/F,long赋值后须加l/L. 而引用数据类型只是简单介绍了class interface null等。

这就是对今天课程主要内容的回顾,另外说下自己尝试中碰到的两个小问题。

一个问题是在同时声明多个变量的练习中,发现需要输出多个变量时,System.out.println();需要重复使用多次。如下

class DataDemo{
    public static void main(String[] args){
        int a=1,b=2,c=3;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

    }
}

尝试用+号连接,如下

class DataDemo{
	public static void main(String[] args){
		int a=1,b=2,c=3;
		System.out.println(a+b+c);
		System.out.println(+a+b+c);

	}
}

  

发现这两种方式输出的都是a+b+c也就是6 这个结果。多次尝试之后,发现只有如下才能让+实现连接符而不是数学加的功能。

class DataDemo{
    public static void main(String[] args){
        int a=1,b=2,c=3;
        System.out.println(""+a+b+c);

    }
}

上面的用法输出的才是123这个我想要的结果。最后得出结论,+号在有""存在的情况下可以才会实现连接符功能,""里并不需要有内容。

第二个是char的赋值问题。首先为char赋值字符时需要加单引号‘‘,而为其赋值数字时不能加引号。当赋值为数字时,输出的结果会是这个数字对应的ASCⅡ字符。

class DataDemo{
    public static void main(String[] args){
        char a=065,b=‘x‘,c=65;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}

在做这项练习时,发现a b c输出的值不一样,分别是 5 x A ,仔细思考后,发现了问题所在。原因是065被识别为八进制数,对应的十进制数是53,而ASCⅡ码中53对应的就是字符5.

后来还尝试给char一些ASCⅡ码表中没有的数字比如 char a=1,b=10;也不报错,希望这个问题在后面的学习中可以得到解答。

今天就写到这儿,虽然花了一个多小时,但把今天的内容又过了一遍感觉不错,希望可以保持这样的好习惯,快速成长。文中一定不乏错误瑕疵,请不吝指出。共勉!

时间: 2024-10-13 23:09:40

Java初窥门径,学而时习之。.——16/10/11的相关文章

剑指offer19:按照从外向里以顺时针的顺序依次打印出每一个数字,4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

1 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 2 思路和方法 直接定义一个矩形,在矩形的四条边取值,程序大大简化. 3 核心代码 1 class Solution { 2 public: 3 vector<int> printMatrix(vector<

16.10

1 import java.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*; 4 5 public class Test_16_10 extends JFrame{ 6 public Test_16_10(){ 7 JP jp1 = new JP(); 8 add(jp1); 9 jp1.setFocusable(true); 10 } 11 12 public static void main(String[] args) {

[原创]java WEB学习笔记10:GenericServlet

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Java基础学习笔记【11】Reflect反射(1)

InputStreamReader将字节流转换为字符流 在java1.7中新增了Files,Paths对流,路径操作的工具类,内部就是输入输出流等的操作 Syso加只能提示可以快速代码System.out.println(): 反射创建Class的三种方式:(1)使用 class的属性得到Class对象 1 2 Class<String> c = String.class;//String.class就表示JVM里的一份表示String类的字节码 Class<String> c2

Java基础知识强化10:Java中的中间缓存变量机制

1.对于自增运算++j与j++,由于加一的执行顺序不同,所以Java中有中间缓存变量来储存其单个表达式的值,而j的自增自减的结果依然保留在原来的变量储存区.因为本体是j的值,而单个表达式的值是中间产生的一个临时变量值,是在整条计算表达式结束后就可以抛弃的值,所以用个临时中间缓存变量在放就可以了.这就可以实现自增自减运算在计算时值的加减1顺序差异产生的表达式与本体值差异的两个变量储存. 2. 1 因为在计算过程中,使用了Java中间变量缓存机制.在java中,执行自增运算时,会为每一个自增操作分配

【Java】 Thinking in Java 4.8 练习10 吸血鬼数字

题目: 吸血鬼数字是指位数为偶数的数字,可以有一对数字相乘得到,而这对数字各包含成绩的一半位数的数字,其中从最初的数字中选取的数字可以任意排序.  以两个0结尾的数字是不允许的.写一个程序,找出4位数中所有吸血鬼数字. 方法一: 1 public static void main(String[] args) { 2 outer: for (int i = 10; i <= 99; i++) { 3 for (int j = i + 1; j <= 99; j++) { 4 int sum =

每日一记--2014.10.11(2)

今天终于进展到了第三章,好好读了读链表 其实对于linkedlist来说,它的remove也会是O(N),因为对于删除这个动作确实是常数时间的,但是对于定位到被删除元素的位置就需要有线性时间的开销了 今天参照书上的把ArrayList类编了编,定名为MyArrayListM 1 package myarraylist; 2 3 import java.util.Iterator; 4 import java.util.NoSuchElementException; 5 6 public clas

Java多线程系列--“基础篇”11之 生产消费者问题

概要 本章,会对“生产/消费者问题”进行讨论.涉及到的内容包括:1. 生产/消费者模型2. 生产/消费者实现 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3480016.html 1. 生产/消费者模型 生产/消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”.“消费者”.“仓库”和“产品”.他们之间的关系如下:(01) 生产者仅仅在仓储未满时候生产,仓满则停止生产.(02) 消费者仅仅在仓储有产品时候才能消费,仓空则等待.(03) 当

VMware Workstation 12安装 Solaris 10 / 11

Hello and welcome to our today's article on Installation of Solaris using VMware Workstation. Oracle Solaris 11 is the world's most advanced enterprise operating system that delivers security, speed, and simplicity for enterprise cloud environments a