S-JIS[2008-08-09/2021-03-21] �ύX����

Java���Z�q�E���̕]��

��������̉��Z�q


Java�̉��Z�q�D�揇��

�O���[�v ���Z�q �T�v �� ���� ����
�ꎟ�� ( )
new
.
[]
�D�悷�鎮 (1 + 2) �@ �@
�V�K���� new �^[]
new �N���X()
�� ���z�񐶐�
���N���X�̃C���X�^���X����
�����o�[ obj.value
obj.method()
���t�B�[���h�A�N�Z�X�E���\�b�h�Ăяo��
�z�� array[0] ���z��
��u�� ++ -- ��uinc/dec n++
n--
�� ��u�C���N�������g�E�f�N�������g
�P�����Z�q ++ --
+ -
~
!
( )
�O�uinc/dec ++n
--n
�E �O�u�C���N�������g�E�f�N�������g
���� +n
-n
�������E������
�r�b�g�ے� ~n �r�b�g���]
�_���ے� !b true��false�ɁAfalse��true�ɂ���
�L���X�g (�N���X)obj �@
�揜���Z�q * / % ��Z�E���Z�E��] m * n
m / n
m % n
�� �@
�������Z�q + - ���Z�E���Z m + n
m - n
�� �@
������A�� string + n
n + string
�� �������񌋍�
�V�t�g���Z�q << >> >>> �r�b�g�V�t�g n << r
n >> r
n >>> r
�� ���V�t�g���Z�̒���
�֌W���Z�q < >
<= >=
instanceof
�召��r m < n
m > n
m <= n
m >= n
�� �@
�^��r obj instanceof �N���X ��instanceof
�������Z�q ==
!=
����
�s����
m == n
m != n
�� ��equals()�Ƃ̈Ⴂ
�r�b�g�_�����Z�q & �r�b�gAND m & n �� �r�b�g�P�ʂ̘_���� ��boolean�̏ꍇ
^ �r�b�gXOR m ^ n �� �r�b�g�P�ʂ̔r���I�_���a
| �r�b�gOR m | n �� �r�b�g�P�ʂ̘_���a
����AND���Z�q && ����AND b1 && b2 �� �@
����OR���Z�q || ����OR b1 || b2 �� �@
�������Z�q ? : ���� b ? m : n �E �O�����Z�q
������Z�q =
*= /= %=
+= -=
<<= >>= >>>=
&= ^= |=
��� m = n
m *= n
�E ������������Z�q

C����/C++���J���}���Z�q�́AJava�ɂ͖����B

����������ɏ�����Ă��鉉�Z�i���j�����߁E�v�Z���郉�C�u�����[


�p��̐���

���Z�q���I�y���[�^�[�ioperator�j�A���Z�Ώہi�l�E���j���I�y�����h�ioperand�j�ƌ����B

�P�����Z�q�́A�I�y�����h��1�‚����Ȃ����Z�q�B�Ⴆ�΁u-n�v�Ƃ��un++�v�Ƃ��B
�񍀉��Z�q�́A�I�y�����h��2�‚��鉉�Z�q�B�Ⴆ�΁ua + b�v�Ƃ��uobj instanceof �N���X�v�Ƃ��B
�O�����Z�q�́A�I�y�����h��3�‚��鉉�Z�q�BJava�ł͏������Z�q�ub ? m : n�v���������B

���Z�q��g�ݍ��킹�����̂��u���v�ƌĂсA���̌v�Z���s�����Ƃ��u�]���v�ƌĂԂ��Ƃ�����B

�����i�������E�E�����j�́A���̒��ɓ���D�揇�ʂ̉��Z�q������ł���Ƃ��� �ǂ�����Ɍv�Z���邩�̏������߁B
�������̗�F�ua + b + c�v�c���Z���Z�q�u+�v�͍������Ȃ̂ŁA���������Ɍv�Z�����B���Ȃ킿�ua + b�v���s���Ă���c�����Z�����B
�E�����̗�F�ua = b = c�v�c������Z�q�u=�v�͉E�����Ȃ̂ŁA�E�������ɕ]�������B���Ȃ킿�ub = c�v����Ɏ��s����A���Ɂua = b�v�����s�����B


���Z�S�ʂ̎d�l

���l���i�i���l�̊i�グ�Fnumeric promotion�j

�Z�p���Z�ł́A�^�̕ϊ����s���邱�Ƃ�����B[/2008-08-30]

�P�����l���i�iunary numeric promotion�j

�P�����Z�q�i������+-��!~�A�z��̃C���f�b�N�X���j�ɂ����ẮAint���Z�������^�ibyte�Echar�Eshort�j�̉��Z�́Aint�ɕϊ��i���C�h�j���O�ϊ��j����čs����B

�񍀐��l���i�ibinary numeric promotion�j

�񍀉��Z�q�ŁA�I�y�����h�̂ǂ��炩��int���傫���^�idouble�Efloat�Elong�j�̂Ƃ��A���̌^�ɕϊ�����Ă���v�Z�����B
�܂��Aint��菬�����^�΂���ł���΁Aint�ɕϊ�����Ă���v�Z�����B

�Ⴆ�΁ubyte b�v�Ɓushort s�v�ɑ΂��ub + s�v�́Ab��int�Ɋg������As��int�Ɋg������Ă�����Z�����B
�܂��Aint+double�Ȃ�int��double�ɕϊ�����邵�Aint+long�Ȃ�int��long�Ɋg�������Bfloat+long�Ȃ�long��float�ɕϊ������B
�ʏ�̎Z�p���Z�ł́A�����Ȃ��Ă�������֗��B

�V�t�g���Z�i<<�E>>�E>>>�j�͓񍀉��Z�q�ł����ĒP�����Z�q�ł͂Ȃ����A�����Ȃ̂ŒP�����l���i�̑ΏۂƂȂ��Ă���B
�����������_���E�V�t�g���Z�u>>>�v�͒��ӂ�v����B
�Ⴆ�΁ubyte b = -1�i0xff�j�v�ɑ΂��� �E��1�r�b�g�V�t�g���āu0x7f�v�Ƃ������ꍇ�A�ub >>> 1�v�ł͖]�񂾌��ʂɂȂ�Ȃ��B
�Ȃ��Ȃ�Ab���P�����l���i����int�Ɋg�������̂ŁA0xff��0xffffffff�ɂȂ�B�i1�o�C�g��0xff��4�o�C�g��0xffffffff�́A2�̕␔�\���Ō���΂ǂ����-1���Ӗ�����B����Ȃ������l�ł���j
���̏�ԂŁu>>> 1�v���s���̂ŁA���ʂ́u0x7fffffff�v�ƂȂ�B
������byte�ɃL���X�g����ƈ�ԉ���1�o�C�g�������L���ƂȂ�i0x7fffffff�j�̂ŁA���ʂ́u0xff�v�B0x7f�ɂ͂Ȃ�Ȃ��B
���������āAbyte�̂Ƃ��́u(b & 0xff) >>> 1�v�Ashort�̂Ƃ��́u(s & 0xffff) >>> 1�v�Ƃ��Ȃ���΂Ȃ�Ȃ��B
�i���Ȃ݂Ɂu& 0xff�v�����{����ΕK�����̐��ƂȂ�̂ŁA�u>>>�v�łȂ��u>>�v�ł��������ʂɂȂ�B���Ă��Ƃ́Abyte��short�ɑ΂���u>>>�v�Ȃ�ĕs�v�����c�j


�]������

Java�ł́A�]�������ʂ�ɕ]�����s���邱�Ƃ��ۏ؂�����B�iC����ł́A�����ˑ��i������œK���ɂ���ĈقȂ�j�Ƃ����������������j

�‚܂�A�����������E�̉��Z�q�ł́A���̕]�����I����Ă���E�̕]�����s���B
���̕]�����i��O�����Ƃ��ɂ���āj���S�ɏI�����Ȃ������ꍇ�A�E�̕]���͍s���Ȃ��B

	int r = func1() + func2();
		������func1()�ŗ�O���N������Afunc2()�͐�΂Ɏ��s����Ȃ��B

���_��́Ar2=func2()���ɌĂяo���āAfunc1()+r2�Ƃ����v�Z���s���Ă����ʂ͓����ɂȂ�B
�i�Ӗ��I�ɂ͍��E�����ւ���func2()+func1()�Ƃ����̂Ɠ����j
������Java�R���p�C���[�͂����������͂��Ȃ��B�i�r���ŗ�O���N����ƌ�̂��͎̂��s����Ȃ�����A�������d�v�ƂȂ�j

���\�b�h�̈������A�������珇�ɕ]�������B

	int a = 1;
	method(a, a = 2, a);
��
	method(1, 2, 2)�Ɠ���

�������܂��A���������̂Ɉˑ������v���O���~���O�͂���ׂ�����Ȃ����ǂ�(���)


������ƒ��ӂ̗v�鉉�Z�q

�N���X�C���X�^���X������

�unew �N���X��()�v�ɂ���āA�N���X�̃C���X�^���X����������B

��new�̕��ʂ̎g�����inew �N���X()�j
�����������N���X�̍����inew �N���X(){ }�j
�������N���X�̃C���X�^���X���i�ϐ�.new �N���X()�j
���z��̃C���X�^���X���inew �N���X[ ]�j

C++�ł������Ȃ��R���X�g���N�^�[�̏ꍇ�����ʂ͕s�v�Ȃ̂Łua = new Foo;�v�Ƃ����`�ŏ������Ƃ��o�������AJava�ł́unew �N���X���v�̌��ɕK�����ʂ��K�v�B[2003-07-06]


�V�t�g���Z�q

�V�t�g���Z�q�́A�����^�ɑ΂��Ă̂ݎg����i��������float��double�ł͎g���Ȃ��j�B

Java�ł͐����̕����̗L�����^�ł͊Ǘ����Ȃ��i��ɕ����L��Ƃ��Ĉ�����j�B
�iC�����C++�ł́uint�v�Ɂusigned int�v�Ɓuunsigned int�v������j
���̈Ⴂ�������̂̓r�b�g�E�V�t�g���Z�Ȃ̂ŁA�E�V�t�g���Z�q�ɂ͕����L��p�́u>>�v�ƕ��������p�́u>>>�v�����݂���B[2003-07-06]
�u>>�v�ł̓V�t�g�O�̕������ۑ�����邪�A�u>>>�v�ł͕ۑ����ꂸ�A�ŏ�ʃr�b�g��0������B �i2�̕␔�\���ɂ����Ă͍ŏ�ʃr�b�g���������Ӗ�����j
�Ⴆ��-2�i0xfffffffe�j�ɑ΂��āu-2 >> 1�v�́u-1�i0xffffffff�j�v�ɂȂ邪�A�u-2 >>> 1�v�́u0x7fffffff�v�ɂȂ�B

������byte��short�ɑ΂���u>>>�v�͒��ӂ�v����B�����l�̏��i


�V�t�g���Z�q�̉E�I�y�����h�͐��̐����������Ȃ��B�Ƃ������A���̐����w�肵�ċt�����̃V�t�g�ɂȂ�����͂��Ȃ��B
�Ȃ��Ȃ�A�E�I�y�����h�ɑ΂��A���I�y�����h��int�̏ꍇ�́u& 0x1f�v�Along�̏ꍇ�́u& 0x3f�v���Ă���v�Z����邽�߁Bint��32bit�Along��64bit�Ȃ̂ŁA���͈̔͂𒴂���V�t�g�͖��Ӗ��A�Ƃ������f�Ȃ̂��낤���B�i64�r�b�g�ȏ�V�t�g����΁A���ʂ͏��0�i�����̕����t���E�V�t�g�Ȃ�-1�j������j

�‚܂�A�uint a�v�ɑ΂���ua << -1�v�́A�ua << (-1 & 0x1f)�v�Ȃ̂Łua << 31�v�Ɠ����B


�^��r���Z�q

instanceof�́A�I�u�W�F�N�g���Y���N���X�i���p�����Ă���j���ǂ����𔻒f���鉉�Z�q�B�Y���N���X�ł���ΐ^�itrue�j�B[2007-06-11]

interface I {}
class S {}
class A extends S implements I {}
class B {}

�̂Ƃ��A�uObject obj = new A();�v�Ƃ���ƁA�uobj instanceof A�v�͓��Rtrue�����A�uobj instanceof S�v�uobj instanceof I�v��true�B
�uObject obj = new B();�v�ł���΁A�uobj instanceof A�v�uS�v�uI�v�͑S��false�B

�ΏۃI�u�W�F�N�g��null�ł���΁Ainstanceof��false�ɂȂ�B

�����t���N�V�����Ō^�𔻒f������@


instanceof�́A�ȉ��̂悤�Ȏg���������邱�Ƃ������B

	Object obj = �`;
	if (obj instanceof Type) {	//�uobj instanceof Type�v��true�Ȃ��
		Type t = (Type)obj;	//obj��Type�̃C���X�^���X�Ȃ̂ŁAType�փL���X�g�ł���
		�`
	}

���������Q�ƌ^�̃i���[�C���O�ϊ����”\�ł��邱�Ƃ��`�F�b�N����ړI

��insntaceof�̎��s���x
���p�^�[���}�b�`���Oinstanceof [2021-03-21]


�r�b�g�P�ʂ̘_�����Z�q

boolean���m�ɑ΂���r�b�g�_���a�E�_���ρi|,&,�‚��ł�^�j�̌��ʂ́Aboolean�^�ɂȂ�B[2007-11-06]
boolean��int�ɑ΂���r�b�g�_���a�E�_���ς͌v�Z�s�\�i�R���p�C���G���[�j�B


����������Z�q

�u+=�v��u*=�v���́i�P��������Z�q�u=�v�ȊO�́j������Z�q�� ����������Z�q�ƌĂԁB

����������Z�q�́A�ȉ��̂悤�ȕϊ������������ق������B

�ua += b�v�߁ua = (Type)(a + b)�v �iType�́Aa�̌^�B�‚܂�L���X�g�j

�u�قړ����v�Ƃ����̂́Aa�ɓ����镔�����z��Ȃǂ̌v�Z�𔺂����������ꍇ�́A���̌v�Z�͈�x�����s���Ȃ�����B�ł��ܘ_���̕����s�������ł��傤�B

�������_���E�V�t�g������Z�q�u>>>=�v�Œ��ӂ�v����B
�Ⴆ�΁ubyte b = -1�v�ɑ΂��āub >>>= 1�v�́A�ub = (byte)(b >>> 1)�v�ɓW�J���ꂽ�̂Ɠ����B���Ȃ킿�A���l���i�̉e�����󂯂�B
�ub = (byte)((b & 0xff) >>> 1�v���Ӑ}��������ƂȂ�B�i�‚܂�byte��short�ɑ΂���u>>>=�v���ĈӖ������c�j


Java�ڎ��֖߂� / �Z�p�����֖߂�
���[���̑��M��F�Ђ�����

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@